From: Chris Mason <mason@suse.com>
To: Hans Reiser <reiser@namesys.com>
Cc: berthiaume_wayne@emc.com, reiserfs-list@namesys.com, green@namesys.com
Subject: Re: fsync() Performance Issue
Date: 04 May 2002 09:11:24 -0400 [thread overview]
Message-ID: <1020517884.3947.266.camel@tiny> (raw)
In-Reply-To: <3CD341EC.9080906@namesys.com>
On Fri, 2002-05-03 at 22:05, Hans Reiser wrote:
> >The barrier option doesn't make much difference because the write cache
> >is off. With write cache on, the barrier code should allow you to be
> >faster than with the caching off, but without risking the data (Jens and
> >I are working on final fsync safety issues though).
> >
> >Hans, data=journal turns on the data journaling. The data journaling
> >
> and the reason it is faster is....
Any time you append X number of bytes followed by an fsync (or O_SYNC),
you trigger a commit for the modified metadata, and then a seek to write
the data block. You wait on the log blocks (usually 5 or 6 of them
total in the transaction) and then you wait for the data block to hit
the main disk area.
With data logging, you also write the data block to the log, and that
means you can wait a while to flush it back to the main disk. This
increases the size of the transaction by 1, but writing 7 blocks to the
log is almost no different from writing 6.
You don't have to seek back to the main disk until you need to flush the
transaction. The new code also flushes metadata from more the one
transaction at once, leading to less waiting overall.
The new code is smarter about triggering updates to the journal header
block, it happens much less frequently now, leading to fewer seeks and
less waiting.
As the size of the O_SYNC/fsync write increases, the benefit goes down.
A 16k write only gets around 30% improvement with the new patches.
Since a 1k write still needs to write a whole block, it should be the
same speed as a 4k write.
Wayne, you might want to try the 1k test mounted with -o notail.
-chris
next prev parent reply other threads:[~2002-05-04 13:11 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-03 20:35 fsync() Performance Issue berthiaume_wayne
2002-05-03 22:00 ` Chris Mason
2002-05-04 2:05 ` Hans Reiser
2002-05-04 5:41 ` Valdis.Kletnieks
2002-05-04 13:11 ` Chris Mason [this message]
2002-05-04 14:59 ` Hans Reiser
2002-05-06 12:40 ` Chris Mason
2002-05-06 13:02 ` Hans Reiser
2002-05-06 21:21 ` Hans Reiser
2002-05-06 22:57 ` Chris Mason
2002-05-06 23:41 ` Hans Reiser
2002-05-07 1:17 ` Manuel Krause
2002-05-07 2:04 ` Chris Mason
2002-05-07 20:26 ` Manuel Krause
2002-05-08 1:22 ` Chris Mason
-- strict thread matches above, loose matches on Subject: below --
2002-05-06 12:54 berthiaume_wayne
2002-04-30 14:45 berthiaume_wayne
2002-04-29 17:26 berthiaume_wayne
2002-04-26 20:28 berthiaume_wayne
2002-04-29 16:20 ` Russell Coker
2002-04-29 16:30 ` Chris Mason
2002-04-29 16:32 ` Toby Dickenson
2002-04-29 16:45 ` Chris Mason
2002-04-29 17:56 ` Matthias Andree
2002-04-29 18:58 ` Valdis.Kletnieks
2002-04-29 18:56 ` Hans Reiser
2002-04-30 14:20 ` Oleg Drokin
2002-04-30 14:27 ` Chris Mason
2002-05-02 5:07 ` Christian Stuke
2002-05-02 6:20 ` Oleg Drokin
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=1020517884.3947.266.camel@tiny \
--to=mason@suse.com \
--cc=berthiaume_wayne@emc.com \
--cc=green@namesys.com \
--cc=reiser@namesys.com \
--cc=reiserfs-list@namesys.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.