From: jim owens <jowens@hp.com>
To: Pavel Machek <pavel@suse.cz>
Cc: linux-fsdevel@vger.kernel.org, Dave Chinner <david@fromorbit.com>,
Theodore Tso <tytso@mit.edu>,
Arjan van de Ven <arjan@infradead.org>,
Miklos Szeredi <miklos@szeredi.hu>,
hch@infradead.org, t-sato@yk.jp.nec.com,
akpm@linux-foundation.org, viro@ZenIV.linux.org.uk,
linux-ext4@vger.kernel.org, xfs@oss.sgi.com, dm-devel@redhat.com,
linux-kernel@vger.kernel.org, axboe@kernel.dk,
mtk.manpages@googlemail.com
Subject: Re: [PATCH 3/3] Add timeout feature
Date: Mon, 14 Jul 2008 09:17:17 -0400 [thread overview]
Message-ID: <487B51DD.2080206@hp.com> (raw)
In-Reply-To: <20080714063617.GF31949@elf.ucw.cz>
Pavel Machek wrote:
> If you also freeze data writes, at least snapshot is not worse than
> _unexpected_ shutdown.
True. But the key point is also that stopping file writes is
__no better__ than an unexpected shutdown for applications.
Once kernel people accept that it is identical to an unknown
shutdown state, they realize that as you said...
> And apps should already be ready for unexpected shutdowns (using fsync
> etc).
The people writing the code outside the kernel are the ones
responsible for the logic of handling "we don't know what
application writes made it to disk".
Remember that immediately after fsync(), the next write
can make the file inconsistent. For example, look at this
simple sales processing database type sequence:
write(sale_last_name_file, "Mackek"
write(sale_first_name_file, "Pavel")
fsync(sale_last_name_file)
fsync(sale_first_name_file)
...
write(sale_last_name_file, "Owens")
write(sale_first_name_file, "Jim")
fsync(sale_last_name_file)
FREEZEFS [defined to NOT allow file data writes]
So if we restart from that snapshot, the sales order
thinks the customer is "Pavel Owens"... unless there
is some mechanism such as seqence numbers that tie
the files together. And if they have such a mechanism
then it doesn't matter if we allow even more writes
such as:
write(sale_first_name_file, "Ted")
There just is no way inside the kernel to know a
freeze was triggered at a stable application point
such that data before the freeze must be on disk
and data after the freez must not go to disk.
This issue is not unique to freeze, it is also
present with filesystems that have snapshots and
cow/versioning built in.
jim
next prev parent reply other threads:[~2008-07-14 13:19 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-30 12:24 [PATCH 3/3] Add timeout feature Takashi Sato
2008-07-01 8:10 ` Christoph Hellwig
2008-07-01 10:52 ` [dm-devel] " Alasdair G Kergon
2008-07-03 12:11 ` Takashi Sato
2008-07-03 12:47 ` Alasdair G Kergon
2008-07-03 22:11 ` Dave Chinner
2008-07-04 12:08 ` Takashi Sato
2008-07-03 14:45 ` Eric Sandeen
2008-07-07 11:07 ` Pavel Machek
2008-07-08 23:10 ` Dave Chinner
2008-07-08 23:20 ` Pavel Machek
2008-07-09 0:52 ` Dave Chinner
2008-07-09 1:09 ` Theodore Tso
2008-07-09 4:21 ` Brad Boyer
2008-07-09 6:13 ` Miklos Szeredi
2008-07-09 6:16 ` Christoph Hellwig
2008-07-09 6:22 ` Miklos Szeredi
2008-07-09 6:41 ` Arjan van de Ven
2008-07-09 6:48 ` Miklos Szeredi
2008-07-09 6:55 ` Arjan van de Ven
2008-07-09 7:08 ` Miklos Szeredi
2008-07-09 20:48 ` Pavel Machek
2008-07-09 7:13 ` Dave Chinner
2008-07-09 11:09 ` Theodore Tso
2008-07-09 11:49 ` Dave Chinner
2008-07-09 12:24 ` Theodore Tso
2008-07-09 12:59 ` Olaf Frączyk
2008-07-09 13:57 ` Arjan van de Ven
2008-07-09 13:55 ` Arjan van de Ven
2008-07-09 13:58 ` jim owens
2008-07-09 14:13 ` jim owens
2008-07-13 12:06 ` Pavel Machek
2008-07-13 17:15 ` jim owens
2008-07-14 6:36 ` Pavel Machek
2008-07-14 13:17 ` jim owens [this message]
2008-07-14 13:12 ` Takashi Sato
2008-07-14 14:04 ` jim owens
2008-07-09 13:53 ` Arjan van de Ven
2008-07-09 6:59 ` Dave Chinner
2008-07-09 7:13 ` Miklos Szeredi
2008-07-09 7:33 ` Dave Chinner
2008-07-09 8:11 ` Miklos Szeredi
2008-07-09 11:15 ` Dave Chinner
2008-07-09 20:44 ` Pavel Machek
-- strict thread matches above, loose matches on Subject: below --
2008-09-08 11:53 Takashi Sato
2008-09-08 17:11 ` Christoph Hellwig
2008-09-25 21:06 ` Ric Wheeler
2008-09-26 8:52 ` Takashi Sato
2008-09-26 10:58 ` Ric Wheeler
2008-09-29 11:11 ` Takashi Sato
2008-09-26 12:35 ` Valdis.Kletnieks
2008-09-29 14:13 ` Christoph Hellwig
2008-09-29 14:36 ` Eric Sandeen
2008-09-29 14:37 ` Christoph Hellwig
2008-09-29 14:45 ` Eric Sandeen
2008-09-29 22:08 ` jim owens
2008-10-05 10:00 ` Pavel Machek
2008-10-09 10:12 ` Takashi Sato
2008-10-09 10:18 ` Christoph Hellwig
2008-08-18 12:28 Takashi Sato
2008-08-21 20:20 ` Andrew Morton
2008-08-22 18:16 ` Christoph Hellwig
2008-08-24 17:03 ` Oleg Nesterov
2008-08-29 9:39 ` Takashi Sato
2008-07-22 9:36 Takashi Sato
2008-06-24 7:00 Takashi Sato
2008-06-24 22:09 ` Andrew Morton
2008-06-27 11:33 ` Takashi Sato
2008-06-27 18:57 ` Andrew Morton
2008-06-29 23:13 ` Takashi Sato
2008-06-30 0:01 ` Andrew Morton
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=487B51DD.2080206@hp.com \
--to=jowens@hp.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=axboe@kernel.dk \
--cc=david@fromorbit.com \
--cc=dm-devel@redhat.com \
--cc=hch@infradead.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=mtk.manpages@googlemail.com \
--cc=pavel@suse.cz \
--cc=t-sato@yk.jp.nec.com \
--cc=tytso@mit.edu \
--cc=viro@ZenIV.linux.org.uk \
--cc=xfs@oss.sgi.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox