linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Phillips <daniel.raymond.phillips@gmail.com>
To: "Theodore Ts'o" <tytso@mit.edu>,
	Daniel Phillips <daniel.raymond.phillips@gmail.com>,
	Dave Chinner <david@fromorbit.com>,
	linux-kernel@vger.kernel.org, tux3@tux3.org,
	linux-fsdevel@vger.kernel.org
Subject: Re: Tux3 Report: Faster than tmpfs, what?
Date: Sat, 11 May 2013 21:28:46 -0700	[thread overview]
Message-ID: <CAEsagEiRLhbv_uk6OhwtcyVufkLgv7KhHA1mLd-o2QDPeXjWKA@mail.gmail.com> (raw)
In-Reply-To: <20130511212608.GA26298@thunk.org>

(resent as plain text)

On Sat, May 11, 2013 at 2:26 PM, Theodore Ts'o <tytso@mit.edu> wrote:
> Dropping fsync() does a lot more than "amplify Tux3's advantage in
> delete performace".  Since fsync(2) is defined as not returning until
> the data written to the file descriptor is flushed out to stable
> storage --- so it is guaranteed to be seen after a system crash --- it
> means that the foreground application must not continue until the data
> is written by Tux3's back-end.
>
> So it also means that any advantage of decoupling the front/back end
> is nullified, since fsync(2) requires a temporal coupling.  In fact,
> if there is any delays introdued between when the front-end sends the
> fsync request, and when the back-end finishes writing the data and
> then communicates this back to the front-end --- i.e., caused by
> schedular latencies, this may end up being a disadvantage compared to
> more traditional file system designs.
>
> Like many things in file system design, there are tradeoffs.  It's
> perhaps more quseful when having these discussions to be clear what
> you are trading off for what; in this case, the front/back design may
> be good for somethings, and less good for others, such as mail server
> workloads where fsync(2) semantics is extremely important for
> application correctness.

Exactly, Ted. We avoided measuring the fsync load on this particular
benchmark because we have not yet optimized fsync. When we do get to
it (not an immediate priority) I expect Tux3 to perform competitively,
because our delta commit scheme does manage the job with a minimal
number of block writes. To have a really efficient fsync we need to
isolate just the changes for the fsynced file into a special "half
delta" that gets its own commit, ahead of any other pending changes
to the filesystem. There is a plan for this, however we would rather
not get sidetracked on that project now while we are getting ready
for merge.

The point that seems to be getting a little lost in this thread is,
the benchmark just as we ran it models an important and common type
of workload, arguably the most common workload for real users, and
the resulting performance measurement is easily reproducible for
anyone who cares to try. In fact, I think we should prepare and
post a detailed recipe for doing just that, since the interest
level seems to be high.

Regards,

Daniel

PS for any Googlers reading: do you know that using Gmail to post to
LKML is simply maddening for all concerned? If you want to know why
then try it yourself. Plain text. Some people need it, and need it to
be reliable instead of gratuitously changing back to html at
surprising times. And static word wrap. Necessary.

  parent reply	other threads:[~2013-05-12  4:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-07 23:24 Tux3 Report: Faster than tmpfs, what? Daniel Phillips
2013-05-10  4:50 ` Dave Chinner
2013-05-10  5:06   ` Christian Stroetmann
2013-05-10  5:47   ` OGAWA Hirofumi
2013-05-14  6:34     ` Dave Chinner
2013-05-14  7:59       ` OGAWA Hirofumi
2013-05-11  6:12   ` Daniel Phillips
2013-05-11 18:35     ` james northrup
2013-05-12  4:39       ` Daniel Phillips
2013-05-11 21:26     ` Theodore Ts'o
2013-05-12  1:10       ` Daniel Phillips
2013-05-12  4:16       ` Daniel Phillips
2013-05-12  4:28       ` Daniel Phillips [this message]
2013-05-13 23:22       ` Daniel Phillips
2013-05-14  0:08         ` Andreas Dilger
2013-05-14  6:25           ` Daniel Phillips
2013-05-15 17:10             ` Andreas Dilger

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=CAEsagEiRLhbv_uk6OhwtcyVufkLgv7KhHA1mLd-o2QDPeXjWKA@mail.gmail.com \
    --to=daniel.raymond.phillips@gmail.com \
    --cc=david@fromorbit.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tux3@tux3.org \
    --cc=tytso@mit.edu \
    /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).