All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lawrence Greenfield <leg+@andrew.cmu.edu>
To: "Patrick J. LoPresti" <patl@curl.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [ANNOUNCE] Ext3 vs Reiserfs benchmarks
Date: Mon, 15 Jul 2002 21:02:11 -0400	[thread overview]
Message-ID: <200207160102.g6G12BiH022986@lin2.andrew.cmu.edu> (raw)
In-Reply-To: <s5gy9ccr84k.fsf@egghead.curl.com>

   From: "Patrick J. LoPresti" <patl@curl.com>
   Date: 	15 Jul 2002 17:31:07 -0400
[...]
   I really wish MTA authors would just support Linux's "fsync the
   directory" approach.  It is simple, reliable, and fast.  Yes, it does
   require Linux-specific support in the application, but that's what
   application authors should expect when there is a gap in the
   standards.

Actually, it's not all that simple (you have to find the enclosing
directories of any files you're modifying, which might require string
manipulation) or necessarily all that fast (you're doubling the number
of system calls and now the application is imposing an ordering on the
filesystem that didn't exist before).

It's only necessary for ext2. Modern Linux filesystems (such as ext3
or reiserfs) don't require it.

Finally: ext2 isn't safe even if you do call fsync() on the directory!

Let's consider: some filesystem operation modifies two different
blocks. This operation is safe if block A is written before block
B. 

. FFS guarantees this by performing the writes synchronously: block A
is written when it is changed, followed by block B when it is changed.

. Journalling filesystems (ext3, reiserfs) guarantee this by
journalling the operation and forcing that journal entry to disk
before either A or B can be modified.

. What does ext2 do (in the default mode)? It modifies A, it modifies
B, and then leaves it up to the buffer cache to write them back---and
the buffer cache might decide to write B before A.

We're finally getting to some decent shared semantics on
filesystems. Reiserfs, ext3, FFS w/ softupdates, vxfs, etc., all work
with just fsync()ing the file (though an fsync() is required after a
link() or rename() operation). Let's encourage all filesystems to
provide these semantics and make it slightly easier on us stupid
application programmers.

Larry





  parent reply	other threads:[~2002-07-16  0:59 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20020712162306$aa7d@traf.lcs.mit.edu>
     [not found] ` <mit.lcs.mail.linux-kernel/20020712162306$aa7d@traf.lcs.mit.edu>
2002-07-15 15:22   ` [ANNOUNCE] Ext3 vs Reiserfs benchmarks Patrick J. LoPresti
2002-07-15 17:31     ` Chris Mason
2002-07-15 18:33     ` Matthias Andree
     [not found]     ` <20020715173337$acad@traf.lcs.mit.edu>
     [not found]       ` <mit.lcs.mail.linux-kernel/20020715173337$acad@traf.lcs.mit.edu>
2002-07-15 19:13         ` Patrick J. LoPresti
2002-07-15 20:55           ` Matthias Andree
2002-07-15 21:23             ` Patrick J. LoPresti
2002-07-15 21:38               ` Thunder from the hill
2002-07-16 12:31                 ` Matthias Andree
2002-07-16 15:53                   ` Thunder from the hill
2002-07-16 19:26                     ` Matthias Andree
2002-07-16 19:38                       ` Thunder from the hill
2002-07-16 23:22                         ` close return value (was Re: [ANNOUNCE] Ext3 vs Reiserfs benchmarks) Zack Weinberg
2002-07-17  1:03                           ` Alan Cox
2002-07-16 23:52                             ` close return value David S. Miller
2002-07-17  1:35                               ` Alan Cox
2002-07-17  0:20                                 ` David S. Miller
2002-07-17  1:05                                   ` Linus Torvalds
2002-07-17  1:05                                     ` David S. Miller
2002-07-17  1:23                                       ` Linus Torvalds
2002-07-17 11:51                                         ` Matthias Andree
2002-07-17 17:23                                           ` Andries Brouwer
2002-07-20  8:00                                         ` Florian Weimer
2002-07-20 16:45                                           ` Linus Torvalds
2002-07-26  0:06                                             ` EFAULT vs. SIGSEGV [was Re: close return value] Pavel Machek
2002-07-26 14:01                                               ` (no subject) Alexis Deruelle
     [not found]                                   ` <mailman.1026868201.10433.linux-kernel2news@redhat.com>
2002-07-18  0:01                                     ` close return value Pete Zaitcev
2002-07-18  0:10                                       ` Thunder from the hill
     [not found]                                       ` <mit.lcs.mail.linux-kernel/200207180001.g6I015f02681@devserv.devel.redhat.com>
2002-07-18 14:42                                         ` Patrick J. LoPresti
2002-07-18 15:13                                           ` Richard B. Johnson
2002-07-18 15:32                                             ` Sandy Harris
2002-07-18 23:47                                           ` Albert D. Cahalan
2002-07-19 16:12                                             ` Patrick J. LoPresti
2002-07-19 16:24                                               ` Joseph Malicki
2002-07-19 18:48                                                 ` Patrick J. LoPresti
2002-07-19 19:25                                                   ` Lars Marowsky-Bree
2002-07-19 19:30                                                     ` Arnaldo Carvalho de Melo
2002-07-19 19:45                                                       ` Joseph Malicki
2002-07-19 19:55                                                         ` Arnaldo Carvalho de Melo
2002-07-20 18:25                                                         ` Bernd Eckenfels
2002-07-20 23:06                                                         ` Sandy Harris
2002-07-20 14:42                                                 ` Andries Brouwer
2002-07-18 20:09                                       ` Hildo.Biersma
2002-07-18 23:55                                         ` Pete Zaitcev
2002-07-19 11:31                                           ` Hildo.Biersma
2002-07-19 16:16                                             ` Pete Zaitcev
2002-07-23 22:19                                           ` Bill Davidsen
2002-07-17  0:10                             ` close return value (was Re: [ANNOUNCE] Ext3 vs Reiserfs benchmarks) Zack Weinberg
2002-07-17  1:45                               ` Alan Cox
2002-07-17 18:24                                 ` Zack Weinberg
2002-07-22 16:42                                 ` Rogier Wolff
2002-07-17  8:00                               ` Lars Marowsky-Bree
2002-07-17 15:49                                 ` Thunder from the hill
2002-07-17  2:22                             ` Elladan
2002-07-17  2:54                               ` Thunder from the hill
2002-07-17  3:00                                 ` Elladan
2002-07-17  3:10                                   ` Thunder from the hill
2002-07-17  3:31                                     ` Elladan
2002-07-17  4:17                               ` Stevie O
2002-07-17  4:38                                 ` Elladan
2002-07-17 14:39                                   ` Andreas Schwab
2002-07-17 16:49                                     ` Elladan
2002-07-17 17:43                                       ` Linus Torvalds
2002-07-17 22:07                                         ` Elladan
2002-07-18  9:48                                         ` Ketil Froyn
2002-07-17 17:17                                   ` Andries Brouwer
2002-07-17 17:51                                     ` Richard Gooch
2002-07-17  7:34                               ` close return value (was Re: [ANNOUNCE] Ext3 vs Reiserfs benchmarks Kai Henningsen
2002-07-15 21:59               ` Ketil Froyn
2002-07-15 23:08                 ` Matti Aarnio
2002-07-16 12:33                   ` Matthias Andree
2002-07-15 22:55             ` Alan Cox
2002-07-15 21:58               ` Matthias Andree
2002-07-15 21:14           ` Chris Mason
2002-07-15 21:31             ` Patrick J. LoPresti
2002-07-15 22:12               ` Richard A Nelson
2002-07-16  1:02               ` Lawrence Greenfield [this message]
     [not found]                 ` <mit.lcs.mail.linux-kernel/200207160102.g6G12BiH022986@lin2.andrew.cmu.edu>
2002-07-16  1:43                   ` Patrick J. LoPresti
2002-07-16  1:56                     ` Thunder from the hill
2002-07-16 12:47                     ` Matthias Andree
2002-07-16 21:09                     ` James Antill
2002-07-16 12:35             ` Matthias Andree
2002-07-16  7:07     ` Dax Kelson
2002-07-12 16:21 Dax Kelson
2002-07-12 17:05 ` Andreas Dilger
2002-07-12 17:26   ` kwijibo
2002-07-12 17:36     ` Andreas Dilger
2002-07-12 20:34 ` Chris Mason
2002-07-13  4:44 ` Daniel Phillips
2002-07-14 20:40 ` Dax Kelson
2002-07-15  8:26   ` Sam Vilain
2002-07-15 12:30     ` Alan Cox
2002-07-15 12:02       ` Sam Vilain
2002-07-15 13:23         ` Alan Cox
2002-07-15 13:40           ` Chris Mason
2002-07-15 19:40             ` Andrew Morton
2002-07-15 15:12         ` Andrea Arcangeli
2002-07-15 16:03         ` Andreas Dilger
2002-07-15 16:12           ` Daniel Phillips
2002-07-15 17:48           ` Sam Vilain
2002-07-15 18:47             ` Mathieu Chouquet-Stringer
2002-07-15 19:26               ` Sam Vilain
2002-07-16  8:18               ` Stelian Pop
2002-07-16 12:22                 ` Gerhard Mack
2002-07-16 12:49                   ` Stelian Pop
2002-07-16 15:11                     ` Gerhard Mack
2002-07-16 15:22                       ` Andrea Arcangeli
2002-07-16 15:39                       ` Stelian Pop
2002-07-16 19:45                         ` Matthias Andree
2002-07-16 20:04                           ` Shawn
2002-07-16 20:11                             ` Mathieu Chouquet-Stringer
2002-07-16 20:22                               ` Shawn
2002-07-16 20:27                                 ` Mathieu Chouquet-Stringer
2002-07-17 11:45                                 ` Matthias Andree
2002-07-17 19:02                                   ` Andreas Dilger
2002-07-18  9:29                                     ` Matthias Andree
2002-07-19  8:29                                     ` Matthias Andree
2002-07-19 16:39                                       ` Andreas Dilger
2002-07-19 20:01                                         ` Shawn
2002-07-19 20:47                                           ` Andreas Dilger
2002-07-15 21:14             ` Andreas Dilger
2002-07-17 18:41               ` bill davidsen
2002-07-16  8:15             ` Stelian Pop
2002-07-16 12:27               ` Matthias Andree
2002-07-16 12:43                 ` Stelian Pop
2002-07-16 12:53                   ` Matthias Andree
2002-07-16 13:05                     ` Christoph Hellwig
2002-07-16 19:38                       ` Matthias Andree
2002-07-16 19:49                         ` Andreas Dilger
2002-07-16 20:11                         ` Thunder from the hill
2002-07-16 21:06                           ` Matthias Andree
2002-07-16 21:23                             ` Andreas Dilger
2002-07-16 21:38                               ` Thunder from the hill
2002-07-17 11:47                               ` Matthias Andree
2002-07-18 14:50                               ` Bill Davidsen
2002-07-18 15:09                                 ` Rik van Riel
2002-07-17 18:51                     ` bill davidsen
2002-07-18  9:32                       ` Matthias Andree
2002-07-15 12:09       ` Matti Aarnio

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=200207160102.g6G12BiH022986@lin2.andrew.cmu.edu \
    --to=leg+@andrew.cmu.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patl@curl.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.