btrfs fscked up, too?
Posted Mar 16, 2009 13:54 UTC (Mon) by
forthy (guest, #1525)
In reply to:
btrfs fscked up, too? by masoncl
Parent article:
Garrett: ext4, application expectations and power management
I still think Ted misreads the standard. fsync is about durability,
rename is about atomicy. That's two different things, fsync is not
necessary to make rename atomic, because POSIX file system metadata
operations are already atomic. Atomic metadata operations are a poor
man's transaktion, but reordering them and data operations breaks that
promise, even though only during a crash (outside the scope of
POSIX).
Note that collecting lots of atomic operations and performing them all
in one go is not necessarily breaking the order of all these updates. A
true log-structured file system collects all operations in order, and
writes them in one go - atomic and delayed. btrfs should share most of
these properties, even though the internal design is quite different. As
it shows, implementing it "right" is not costly. Thanks, Chris, for being
responsive.
What we might need further are real transactions. Now, real
transactions are harder; with a filesystem like btrfs which a snapshot
facility, we get a step closer (but only one step). It's not that easy,
in a real transaction monitor, you create a private "snapshot" at the
start of a transaction, perform the transaction, and then commit this
snapshot. If the commit finds a conflict (e.g. a file changed during the
transaction has been changed by somebody else in the meantime), the
transaction will be aborted. Also, if another transaction has already
been merged and changed a file that is read accessed during the
transaction, this transaction will be aborted, too.
(
Log in to post comments)