linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Phillips <lkml@phunq.net>
To: Shentino <shentino@gmail.com>
Cc: Martin Steigerwald <Martin@lichtvoll.de>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	tux3@phunq.net
Subject: Re: Tux3 report: New news for the new year
Date: Wed, 02 Jan 2013 03:03:13 -0800	[thread overview]
Message-ID: <8397253.yJIEVV2VgF@mars> (raw)
In-Reply-To: <CAGDaZ_pDCyMs8BA5XaM19kEcm1X=LwawSsWLit=kqftxpyV_Yw@mail.gmail.com>

On Tuesday, January 01, 2013 10:58:35 PM Shentino wrote:
> From what I can tell on the design, tux3 is "fsync satiating" with a
> single disk write.  It writes the data to the final location, updates
> the log, and at that point the data is considered committed and it can
> let userspace go on its merry way and take care of rolling up the
> changes later.

Yes, correct. I think we currently sync a small file create+write with seven 
blocks and a file rewrite with four blocks, including the commit block and only 
one long seek. We haven't benchmarked that yet, but it sounds fast. There are 
two synchronous waits in the backend, but the frontend only waits on the 
commit block completion in the task doing the sync while other concurrent 
filesystem operations just keep going.

> If I understand btrfs correctly though it has to block
> until the cow logic percolates all the way up to the superblock.

A careful reading of the Btrfs design doc left me confused about that. Perhaps 
Btrfs devs could clarify?

> One other thing that interests me is this "page forking" that allows
> userspace to write to a page that's already busy being written to
> disk.  From what I heard it bypasses a stall caused by userspace I/O
> hitting a locked page.

Page forking is an amazing thing and should really head into core, after being 
thoroughly proved out of course.

> Finally, atime handling.  I personally dislike the forced default of
> "relatime" for mount options and anything that can let atime updates
> happen without being a bottleneck is a plus for me.

Atime is an odious invention indeed from a developer's perspective, but 
apparently well loved by some users and has real applications. Knowing which 
videos you watched recently apparently being one of them. We have a pretty 
good plan for it that is actually just a small development item, the main 
feature of which is avoiding polluting the inode table btree, which would 
cause a lot of churn and aggravate allocate-on-write issues that are already 
difficult, plus be horribly unfriendly to flash. Instead, we churn a dedicated 
btree array (actually a regular file) where the write-on-reads are densely 
concentrated. It somehow feels good to quarantine this craziness at least.

Regards,

Daniel

  reply	other threads:[~2013-01-02 11:03 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2597526.usDRg4h3X1@mars>
     [not found] ` <1492866.3ugQ2fqrP0@mars>
     [not found]   ` <201301011537.08466.Martin@lichtvoll.de>
     [not found]     ` <18617468.vkbTvjxc0P@mars>
2013-01-02  6:58       ` Tux3 report: New news for the new year Shentino
2013-01-02 11:03         ` Daniel Phillips [this message]
2013-01-01 10:55 Daniel Phillips

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8397253.yJIEVV2VgF@mars \
    --to=lkml@phunq.net \
    --cc=Martin@lichtvoll.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shentino@gmail.com \
    --cc=tux3@phunq.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).