From: Chris Mason <mason@suse.com>
To: Andreas Dilger <adilger@clusterfs.com>
Cc: reiser <reiser@namesys.com>, JP Howard <jh_lists@fastmail.fm>,
Edward Shishkin <edward@namesys.com>,
ReiserFS List <reiserfs-list@namesys.com>,
Oleg Drokin <green@namesys.com>
Subject: Re: External journals and NVRAM devices
Date: 06 Nov 2002 15:42:10 -0500 [thread overview]
Message-ID: <1036615330.14551.719.camel@tiny> (raw)
In-Reply-To: <20021106201832.GR588@clusterfs.com>
On Wed, 2002-11-06 at 15:18, Andreas Dilger wrote:
> On Nov 05, 2002 13:23 -0800, reiser wrote:
> > Chris Mason wrote:
> > >With ext3, a 128M or bigger log can really improve performance because
> > >so much of the writeback is done through bdflush/kupdate.
> >
> > Please explain the because clause of the sentence above in more detail.
>
> Nobody has answered this yet AFAIK, so I will.
>
> The reason that having a large log can help performance is because
> having bdflush drive the dirty buffer writeout allows for more changes
> of write merging by the elevator and such, and also avoids stalls in
> user-space code as it waits for a full journal to commit transactions.
>
> There is a fine line here (for ext3 at least), because if you have a
> large journal but it fills up before the transactions have been flushed
> to the filesystem, then user apps stall while the journal is flushed
> (can be several seconds).
Sorry for the delay. This is why tuning bdflush with a large ext3 log
to trigger writeback quickly can help. It lowers the chance userspace
will have to wait for the log to flushed by decreasing the time dirty
buffers are allowed to hang around. (andreas knows this better than I
do, just trying to explain my last message ;-)
The major difference with reiserfs (patched or not) is the log is
flushed per transaction instead of trying to reclaim the whole thing.
In the stock kernels, this really hurts reiserfs with small
transactions, because it only flushes one transaction at a time. This
means I write 3 or 4 blocks, wait, then write 3 or 4 more, wait, etc.
The data logging patches have code to send more than one transaction at
once, so I reclaim the log in chunks of about 200 blocks. The end
result is the log wrapping around is a less expensive operation with the
patches applied, and you usually won't need as large a log to make
data=journal work well.
The downside to my current code is that reiserfs can pin more ram (up to
the size of the log) than ext3, and for a longer period of time.
If you're going to disk, large logs are easy to come by. nvram is
different though, so it matters more there.
-chris
next prev parent reply other threads:[~2002-11-06 20:42 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-01 21:37 External journals and NVRAM devices JP Howard
2002-11-04 13:16 ` Chris Mason
2002-11-05 21:23 ` reiser
2002-11-06 20:18 ` Andreas Dilger
2002-11-06 20:42 ` Chris Mason [this message]
-- strict thread matches above, loose matches on Subject: below --
2002-11-05 22:12 JP Howard
2002-11-01 20:38 JP Howard
2002-11-01 20:57 ` Valdis.Kletnieks
2002-11-01 21:57 ` Edward Shishkin
2002-11-01 21:58 ` Edward Shishkin
2002-11-01 7:29 JP Howard
2002-11-01 7:49 ` Serge Kolodeznyh
2002-11-01 15:33 ` Len Sorensen
2002-11-01 15:10 ` Edward Shishkin
2002-11-01 5:38 Jeremy Howard
2002-11-01 6:29 ` Andreas Dilger
2002-11-01 14:30 ` Edward Shishkin
2002-11-01 20:40 ` Hans Reiser
2002-11-01 21:45 ` Edward Shishkin
2002-11-01 20:41 ` Hans Reiser
2002-11-02 3:04 ` Andrew Clausen
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=1036615330.14551.719.camel@tiny \
--to=mason@suse.com \
--cc=adilger@clusterfs.com \
--cc=edward@namesys.com \
--cc=green@namesys.com \
--cc=jh_lists@fastmail.fm \
--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.