Re: [PATCH 3/3] Add timeout feature

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: jim owens
Date: Monday, July 14, 2008 - 6:17 am

Pavel Machek wrote:


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...


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
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 3/3] Add timeout feature, Takashi Sato, (Mon Jun 30, 5:24 am)
Re: [PATCH 3/3] Add timeout feature, Christoph Hellwig, (Tue Jul 1, 1:10 am)
Re: [dm-devel] Re: [PATCH 3/3] Add timeout feature, Alasdair G Kergon, (Tue Jul 1, 3:52 am)
Re: [dm-devel] Re: [PATCH 3/3] Add timeout feature, Takashi Sato, (Thu Jul 3, 5:11 am)
Re: [dm-devel] Re: [PATCH 3/3] Add timeout feature, Alasdair G Kergon, (Thu Jul 3, 5:47 am)
Re: [dm-devel] Re: [PATCH 3/3] Add timeout feature, Eric Sandeen, (Thu Jul 3, 7:45 am)
Re: [dm-devel] Re: [PATCH 3/3] Add timeout feature, Dave Chinner, (Thu Jul 3, 3:11 pm)
Re: [dm-devel] Re: [PATCH 3/3] Add timeout feature, Takashi Sato, (Fri Jul 4, 5:08 am)
Re: [PATCH 3/3] Add timeout feature, Pavel Machek, (Mon Jul 7, 4:07 am)
Re: [PATCH 3/3] Add timeout feature, Dave Chinner, (Tue Jul 8, 4:10 pm)
Re: [PATCH 3/3] Add timeout feature, Pavel Machek, (Tue Jul 8, 4:20 pm)
Re: [PATCH 3/3] Add timeout feature, Dave Chinner, (Tue Jul 8, 5:52 pm)
Re: [PATCH 3/3] Add timeout feature, Theodore Tso, (Tue Jul 8, 6:09 pm)
Re: [PATCH 3/3] Add timeout feature, Brad Boyer, (Tue Jul 8, 9:21 pm)
Re: [PATCH 3/3] Add timeout feature, Miklos Szeredi, (Tue Jul 8, 11:13 pm)
Re: [PATCH 3/3] Add timeout feature, Christoph Hellwig, (Tue Jul 8, 11:16 pm)
Re: [PATCH 3/3] Add timeout feature, Miklos Szeredi, (Tue Jul 8, 11:22 pm)
Re: [PATCH 3/3] Add timeout feature, Arjan van de Ven, (Tue Jul 8, 11:41 pm)
Re: [PATCH 3/3] Add timeout feature, Miklos Szeredi, (Tue Jul 8, 11:48 pm)
Re: [PATCH 3/3] Add timeout feature, Arjan van de Ven, (Tue Jul 8, 11:55 pm)
Re: [PATCH 3/3] Add timeout feature, Dave Chinner, (Tue Jul 8, 11:59 pm)
Re: [PATCH 3/3] Add timeout feature, Miklos Szeredi, (Wed Jul 9, 12:08 am)
Re: [PATCH 3/3] Add timeout feature, Miklos Szeredi, (Wed Jul 9, 12:13 am)
Re: [PATCH 3/3] Add timeout feature, Dave Chinner, (Wed Jul 9, 12:13 am)
Re: [PATCH 3/3] Add timeout feature, Dave Chinner, (Wed Jul 9, 12:33 am)
Re: [PATCH 3/3] Add timeout feature, Miklos Szeredi, (Wed Jul 9, 1:11 am)
Re: [PATCH 3/3] Add timeout feature, Theodore Tso, (Wed Jul 9, 4:09 am)
Re: [PATCH 3/3] Add timeout feature, Dave Chinner, (Wed Jul 9, 4:15 am)
Re: [PATCH 3/3] Add timeout feature, Dave Chinner, (Wed Jul 9, 4:49 am)
Re: [PATCH 3/3] Add timeout feature, Theodore Tso, (Wed Jul 9, 5:24 am)
Re: [PATCH 3/3] Add timeout feature, Olaf , (Wed Jul 9, 5:59 am)
Re: [PATCH 3/3] Add timeout feature, Arjan van de Ven, (Wed Jul 9, 6:53 am)
Re: [PATCH 3/3] Add timeout feature, Arjan van de Ven, (Wed Jul 9, 6:55 am)
Re: [PATCH 3/3] Add timeout feature, Arjan van de Ven, (Wed Jul 9, 6:57 am)
Re: [PATCH 3/3] Add timeout feature, jim owens, (Wed Jul 9, 6:58 am)
Re: [PATCH 3/3] Add timeout feature, jim owens, (Wed Jul 9, 7:13 am)
Re: [PATCH 3/3] Add timeout feature, Pavel Machek, (Wed Jul 9, 1:44 pm)
Re: [PATCH 3/3] Add timeout feature, Pavel Machek, (Wed Jul 9, 1:48 pm)
Re: [PATCH 3/3] Add timeout feature, Pavel Machek, (Sun Jul 13, 5:06 am)
Re: [PATCH 3/3] Add timeout feature, jim owens, (Sun Jul 13, 10:15 am)
Re: [PATCH 3/3] Add timeout feature, Pavel Machek, (Sun Jul 13, 11:36 pm)
Re: [PATCH 3/3] Add timeout feature, Takashi Sato, (Mon Jul 14, 6:12 am)
Re: [PATCH 3/3] Add timeout feature, jim owens, (Mon Jul 14, 6:17 am)
Re: [PATCH 3/3] Add timeout feature, jim owens, (Mon Jul 14, 7:04 am)