On Jan,Monday 7 2008, at 1:18 PM, Christian Baer wrote:
On Mon, 7 Jan 2008 09:46:56 +0100 Adam Hamsik wrote:The difference is that soft updates (softdeps) will save any data that
actually did make it to the disk prior to the power going down. Incase of ext3 that is not necessarily the case. Especially if the load on the drive is heavy and it doesn't support tagged command queuing. I
could happen that data is actually written to the disk but can't be found because the meta data wasn't written in time.
This is not true metadata must be committed before system can writeany data to fs(in ordered mode data are keeped in transactions and can
be written to disk only when transaction is in commiting state).
Ok, I guess I used the word "metadata" the wrong way. I also considered
the journal to be metadata.The way I understand journaling is (in a very primitive modell). A file is
to be created and written to disk. The system does these steps:
You can create journal on external device, too.
- An entry is made in the journal stating that the given file is to be created.
Entry in journal is created from modified filesystem blocks e.g. directory inode and other fs-information. you can journal non fs data with ext3 ,too
- The file is created (written to disk), the directory is updated as are
the inode and the other fs-information.
yes
- An entry is made in the journal stating that the file was created successfully.
yesIf you have had hard crash after entry 1 is done but 2 not you don't care because filesystem is consistent and nonfs data wasn't written yet.
If you have had hard crash after entry 1 is done and 2 partially you have to redo this journal entry and all entries after it.
If you have had hard crash after entry 1 and 2 was done don't care because filesystem is consistent.
This list is (as stated) very rough and the steps are probably broken down
far more like updating the journal for the entry in the directory and inodes etc. The way I understand it, any data that is actually written to the disk without the journal being updated is lost. Or did I get that wrong?
Journaling and softdeps are different techniques for keeping filesystem in consitent state after reboot, their task is not protect data.
Depends on how you define "protection". :-) If a filesystem is completely broken after a crash you could lose a lot more data than was still in the
memory. Being able to restore the file system and the stored data is protection in a way. :-)
Regards Adam.