All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Reiser <reiser@namesys.com>
To: Chris Mason <mason@suse.com>
Cc: berthiaume_wayne@emc.com, reiserfs-list@namesys.com, green@namesys.com
Subject: Re: fsync() Performance Issue
Date: Sat, 04 May 2002 18:59:57 +0400	[thread overview]
Message-ID: <3CD3F76D.4000708@namesys.com> (raw)
In-Reply-To: 1020517884.3947.266.camel@tiny

Chris Mason wrote:

>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
>
>
>
>
>  
>
So how about if you revise fsync so that it always sends data blocks to 
the journal not to the main disk?

Hans



  reply	other threads:[~2002-05-04 14:59 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 [this message]
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=3CD3F76D.4000708@namesys.com \
    --to=reiser@namesys.com \
    --cc=berthiaume_wayne@emc.com \
    --cc=green@namesys.com \
    --cc=mason@suse.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.