On Fri, 14 Dec 2007 18:47:42 +0600
sftf <sftf-misc@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