Re: journaling filesystem

Adam D. Bradley (artdodge@cs.bu.edu)
Thu, 14 May 1998 02:16:53 -0400 (EDT)


On Wed, 13 May 1998, F Harvell wrote:

> d) That your journal identifies all of the blocks modified between the current checkpoint and the last checkpoint.
>
> e) That journal checkpoints are written out periodically and timestamped (with time and/or operation count).
>
> e) That there is some way to verify that the blocks were actually modified as recorded in the jornal checkpoint.
>
> This allows you to, opon a crash, work backword down the checkpoint chain (journal) to find a series of n checkpoints that are identified as being correctly recorded. After you have found n correct checkpoints, where time(n) > t + t', you can safely assume that all previous checkpoints are also correctly recorded.

BSD works the other way around (roll-forward): First, identify a
checkpoint which is sane and coherent (passes a checksum test); then
read the log forward from that point ("partial segments", which record
the changes to the FS) and apply them until one is found that's
inconsistent. Then stop. The filesystem is in a sane and coherent
state, although it may be "stale".

Adam
(Who'se pondering writing a log-based fs to support dynamic addition
and removal of partitions... which actualy seems remarkably easier
than doing it with a traditional FS layout...)

--
You crucify all honesty             \\Adam D. Bradley  artdodge@cs.bu.edu
No signs you see do you believe      \\Boston University Computer Science
And all your words just twist and turn\\    Grad Student and Linux Hacker
Reviving just to crash and burn        \\                             <><
--------->   Why can't you listen as love screams everywhere?   <--------

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu