Posted Jul 2, 2009 15:17 UTC (Thu) by butlerm (subscriber, #13312)
Parent article: Soft updates, hard problems
Journalling doesn't have to be slow, or have synchronous write
dependencies. In fact the primarily purpose of journalling is to avoid
synchronous write dependencies.
The ones that are remaining are related to the fact that data writes are
logically part of many meta data transactions, and performing certain meta
data transactions (notably renames) is normally unsafe without waiting for
the corresponding data write to complete first.
That is not a necessary constraint, however, if special considerations are
take to undo the problematic operations after an unclean shutdown. Soft
updates multi-versions individual meta data structures to solve the
consistency problem - a more general, and easier to maintain technique is
to use the journal to roll forward, and then individually roll back certain
transactions to restore data - meta data consistency without unnecessarily
discarding the good version of valuable files, etc.