Ext4 and the "30 second window of death"

From: Alberto Gonzalez
Date: Tue Mar 31 2009 - 02:04:58 EST


Hi,

Reading this discussion about the fsync performance problems, the reliability
of delayed allocation, etc... made me a bit confused, so as a normal user I
would like to ask a clear question with an example so I can get a clear answer
and understand the implications of all this.

- Let's say I'm a writer and I like to take my laptop to a cafe every day to
write there for a few hours.

- As such, I want to get good battery life so I'm fine with my data being
written to death say every 30 seconds instead of waking up the disk
immediately if I save the document I'm working on.

- I use Ext4 as my filesystem (default in next Fedora release).

- Let's say I've been working on my book for the last 14 months and I've
written about 400 pages on an ODF file.

- My usual workflow is that every time I finish a paragraph, say every 2-3
minutes, I hit Ctrl+S to save the changes.

- So one day, while I'm working on the book the following happens: I finish a
paragraph and his Ctrl+S to save it. 5 seconds later the system freezes for
some reason. Let's suppose that in that 5 window timeframe between pressing
Ctrl+S and the crash the data has not been written to disk (which happens
every 30 seconds). So as a result I:

A - Lose that last paragraph
B - Lose the whole book

If it's 'A', then that's ok, as expected. Bad luck. But if it's 'B', then I
think that's totally unexpected by any user, and totally unacceptable too.
Sure I want good performance and good battery life, but not at such cost.
(Yes, you can argue I should have a recent backup at home, and you'd be right,
but that doesn't change things fundamentally).

As far as I understand, with Ext3 (defaults), the behavior was A. Will this
change to B with Ext4 and all "modern" filesystems (XFS, Btrfs,...)?

Thanks for any answer.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/