[Btrfs-devel] Data=ordered - what for?

Chris Mason chris.mason at oracle.com
Fri Dec 14 05:01:06 PST 2007


On Fri, 14 Dec 2007 18:47:42 +0600
sftf <sftf-misc at mail.ru> wrote:

> Hi!
> Till now I thought btrfs does not use journaling at all, but utilize
> COW approach for operations atomicity.
> But, when I have seen in "Btrfs Timeline":
> July 31, 2008: Data=ordered mode support, preventing null bytes in a
> file after a crash. I have begun to doubt - whether I correctly
> understand atomicity and transactions concepts of btrfs.
> 
> Please, can you clear these doubts?
> Is btrfs uses any kind of journaling and what for "Data=ordered"?
> I guess, may be it for metadata-data write order but without journal
> involving, isn't it? Thanks!

Strictly speaking, data=ordered isn't about the journal.  It is about
making sure that data blocks are on disk before the metadata that
references them.  This isn't true in Btrfs today, the file data blocks
are not ordered at all with respect to the btree blocks.

The end result is that it is possible today (and likely) to have null
bytes in a file after a crash.

The ext3 and reiserfs implementations of data=ordered introduce a lot
of latency into the log operations, which I'll definitely avoid in
Btrfs.  I'll use a combination of the 'update metadata after data
blocks are down' methods in XFS and other things that take advantage of
the COW tree operations.

-chris



More information about the Btrfs-devel mailing list