Four Places To Lose Power
A file system uses full data journaling. The protocol is: journal write (TxB, I[v2], B[v2], Db), then journal commit (TxE), then checkpoint the three blocks to their final locations, then mark the transaction free in the journal superblock.
The same append runs four times, and power is cut at a different point each time:
| crash point | reached |
|---|---|
| A | TxB, I[v2], B[v2], Db are all in the journal; TxE is not |
| B | TxE is on disk; no checkpoint write has been issued |
| C | I[v2] has been checkpointed; B[v2] and Db have not |
| D | all three checkpoints completed; the journal superblock still lists the transaction as live |
More than one applies. After recovery, in which cases does the appended data survive?
Sign in to answer questions and track your progress
Sign In