From: Neil Brown <neilb@suse.de>
To: Olaf van der Spek <olafvdspek@gmail.com>
Cc: Christian Stroetmann <stroetmann@ontolinux.com>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
linux-ext4@vger.kernel.org, "Ted Ts'o" <tytso@mit.edu>,
Nick Piggin <npiggin@gmail.com>
Subject: Re: Atomic non-durable file write API
Date: Wed, 29 Dec 2010 07:59:28 +1100 [thread overview]
Message-ID: <20101229075928.6bdafb08@notabene.brown> (raw)
In-Reply-To: <AANLkTikW8K4VFLJuYngU64m2vAL1yhA3R=jRt7U6-RRp@mail.gmail.com>
On Tue, 28 Dec 2010 18:22:42 +0100 Olaf van der Spek <olafvdspek@gmail.com>
wrote:
> On Mon, Dec 27, 2010 at 8:30 PM, Christian Stroetmann
> <stroetmann@ontolinux.com> wrote:
> > Btw.: There is even no analogy: "The concepts are the same".
>
> So? Doesn't mean you implement full ACID DB-like transactions.
>
> >>>> Still waiting on any hint for why that performance loss would happen.
> >>>
> >>> > From my point of view, the loss of performance depends on what is
> >>> benchmarked in which way.
> >>
> >> Maybe, but still no indication of why.
> >
> > If you have a solution, then you really should show other persons the
> > working source code.
>
> I don't have source code.
> Are you not capable of reasoning about something without having
> concrete source code?
>
> > For me speaking: I like such technologies and I'm also interested in your
> > attempts.
>
> Writing code is a lot of work and one should have the design clear
> before writing code, IMO.
Yes and no.
Having some design is obviously important before starting to code.
However it is a common experience that once you start writing code, you start
to see all the holes in your design - all the corner cases that you didn't
think about. So sometimes writing some proof-of-concept code is a very
valuable step in the design process.
Then of course you need to do some testing to see if in the code actually
performs as hoped or expected. That testing may cause the design to be
revised.
So asking for code early is not necessarily a bad thing.
I think the real disconnect here is that you haven't really established or
justified a need.
You seem to be asking for the ability to atomically change the data in a file
without changing the metadata. I cannot see why you would want this. Maybe
you could give an explicit use-case??
Another significant issue here is "how much atomicity can we justify".
One possibility is for the file system not to provide any atomicity, and so
require lots of repair after a crash: fsck for the filesystem, "make clean"
for your compile tree, removal of stray temp files etc for other subsystems.
On the other extreme we could allow full transactions encompassing
multiple changes to multiple files which a guarantee to be either committed
completely or not at all after a crash.
We gave up on the first extreme about a decade ago when journalling
filesystems became available for Linux. There seems to be little desire to
pay the cost of ever implementing the other extreme in general purpose
filesystems.
So the important question is "Where on that spectrum of options should we be?"
The answer has to be based on cost/benefit. The cost of adding journalling
was quite high, but the benefit of not having to fsck an enormous filesystem
after a crash is enormous, so it is a cost we have chosen to pay.
If you want some extra level of atomicity, you need to demonstrate either a
high benefit or a low cost. There seems to be some scepticism as to whether
you can. A convincing use-case might demonstrate the high benefit. Working
code might demonstrate low cost. But you really need to provide at least one
(ideally both) or people are unlikely to take you seriously.
NeilBrown
next prev parent reply other threads:[~2010-12-28 20:59 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <AANLkTing7+SK+pavFehR4AGDbRRfFwvvzNxgWQ3zRp+O@mail.gmail.com>
2010-12-09 12:03 ` Atomic non-durable file write API Olaf van der Spek
2010-12-16 12:22 ` Olaf van der Spek
2010-12-16 20:11 ` Ric Wheeler
2010-12-18 22:15 ` Calvin Walton
2010-12-19 16:39 ` Olaf van der Spek
2010-12-23 15:49 ` Olaf van der Spek
2010-12-23 21:51 ` Neil Brown
2010-12-23 22:22 ` Ted Ts'o
2010-12-24 0:30 ` Christian Stroetmann
2010-12-24 0:48 ` Ted Ts'o
2010-12-24 1:00 ` Christian Stroetmann
2010-12-24 9:51 ` Ted Ts'o
2010-12-24 11:14 ` Olaf van der Spek
2010-12-24 11:25 ` Christian Stroetmann
2010-12-25 3:15 ` Ted Ts'o
2010-12-25 10:41 ` Olaf van der Spek
2010-12-25 11:33 ` Nick Piggin
2010-12-25 15:24 ` Olaf van der Spek
2010-12-25 17:25 ` Nick Piggin
2010-12-26 15:08 ` Olaf van der Spek
2010-12-26 15:55 ` Boaz Harrosh
2010-12-26 16:02 ` Olaf van der Spek
2010-12-26 16:27 ` Boaz Harrosh
2010-12-26 18:26 ` Olaf van der Spek
2010-12-26 16:43 ` Nick Piggin
2010-12-26 18:51 ` Olaf van der Spek
2010-12-26 22:10 ` Ted Ts'o
2010-12-27 0:30 ` Christian Stroetmann
2010-12-27 1:04 ` Ted Ts'o
2010-12-27 1:30 ` Christian Stroetmann
2010-12-27 2:53 ` Ted Ts'o
2010-12-27 10:21 ` Olaf van der Spek
2010-12-27 11:07 ` Marco Stornelli
2010-12-27 15:30 ` Christian Stroetmann
2010-12-27 19:07 ` Olaf van der Spek
2010-12-27 19:30 ` Christian Stroetmann
2010-12-28 17:22 ` Olaf van der Spek
2010-12-28 20:59 ` Neil Brown [this message]
2010-12-28 22:00 ` Greg Freemyer
2010-12-28 22:06 ` Olaf van der Spek
2010-12-28 22:15 ` Greg Freemyer
2010-12-28 22:28 ` Olaf van der Spek
2010-12-28 22:35 ` Neil Brown
2010-12-29 11:05 ` Dave Chinner
2010-12-28 22:10 ` Olaf van der Spek
2010-12-28 22:31 ` Neil Brown
2010-12-28 22:54 ` Olaf van der Spek
2010-12-28 23:42 ` Ted Ts'o
2010-12-29 9:09 ` Olaf van der Spek
2010-12-29 15:30 ` Christian Stroetmann
2010-12-29 15:41 ` Olaf van der Spek
2010-12-29 16:30 ` Christian Stroetmann
2010-12-29 17:14 ` Olaf van der Spek
2010-12-30 0:50 ` Neil Brown
2011-01-07 14:23 ` Olaf van der Spek
2010-12-27 4:12 ` Nick Piggin
2010-12-27 11:48 ` Olaf van der Spek
2010-12-27 12:43 ` Olaf van der Spek
2010-12-28 0:45 ` Ted Ts'o
2010-12-24 11:21 ` Christian Stroetmann
2010-12-24 11:17 ` Olaf van der Spek
2010-12-24 11:29 ` Christian Stroetmann
2010-12-24 11:30 ` Olaf van der Spek
2010-12-25 21:40 ` Neil Brown
2010-12-23 22:43 ` Dave Chinner
2010-12-23 22:47 ` Ted Ts'o
2010-12-26 9:59 ` Amir Goldstein
2010-12-26 15:23 ` Olaf van der Spek
2010-12-26 16:52 ` Nick Piggin
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=20101229075928.6bdafb08@notabene.brown \
--to=neilb@suse.de \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=npiggin@gmail.com \
--cc=olafvdspek@gmail.com \
--cc=stroetmann@ontolinux.com \
--cc=tytso@mit.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).