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: 06 May 2002 08:40:27 -0400 [thread overview]
Message-ID: <1020688827.3947.2087.camel@tiny> (raw)
In-Reply-To: <3CD3F76D.4000708@namesys.com>
On Sat, 2002-05-04 at 10:59, Hans Reiser wrote:
>
> So how about if you revise fsync so that it always sends data blocks to
> the journal not to the main disk?
This gets a little sticky.
Once you log a block, it might be replayed after a crash. So, you have
to protect against corner cases like this:
write(file)
fsync(file) ; /* logs modified data blocks */
write(file) ; /* write the same blocks without fsync */
sync ; /* use expects new version of the blocks on disk */
<crash>
During replay, the logged data blocks overwrite the blocks sent to disk
via sync().
This isn't hard to correct for, every time a buffer is marked dirty, you
check the journal hash tables to see if it is replayable, and if so you
log it instead (the 2.2.x code did this due to tails). This translates
to increased CPU usage for every write.
I'd rather not put it back in because it adds yet another corner case to
maintain for all time. Most of the fsync/O_SYNC bound applications are
just given their own partition anyway, so most users that need data
logging need it for every write.
-chris
next prev parent reply other threads:[~2002-05-06 12:40 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
2002-05-04 14:59 ` Hans Reiser
2002-05-06 12:40 ` Chris Mason [this message]
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=1020688827.3947.2087.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.