Re: mode data=journal in ext3. Is it safe to use?

From: Andreas Dilger
Date: Thu Jun 17 2004 - 11:28:11 EST


On Jun 17, 2004 13:23 +0200, Petter Larsen wrote:
> But think of your scenario of copy, delete and make a new file with the
> new content. First we copy the contents of the file, then we do our
> modifications. When we are done we delete the original file. Then we hit
> a crash. The content we had of the file in our process are gone, the
> original file is deleted. This is not a good idea. But if we write the new
> file first as fileX.new and den delete fileX, hit a crash then we would
> have at least the correct file written as fileX.new.

The rename operation is guaranteed to be atomic. You implement updates as:
1) create new file
2) write data to new file
3) rename new file over old filename

If the system crashes at any time you are guaranteed that the old filename
has valid data in it. Even if you use data=journal mode while overwriting
the old filename directly you wouldn't be guaranteed to have valid data
unless your application was only e.g. writing aligned records to fixed file
offsets, and those records were <= 4kB in size.

Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://members.shaw.ca/adilger/ http://members.shaw.ca/golinux/

Attachment: pgp00000.pgp
Description: PGP signature