Recovery uses the log prefix available at the crash point.

highlighted = computed this step

Crash and recovery

Recovery starts from the log that exists at the crash point. Records after the crash are not available to the compiler. Note: the red crash line marks the cutoff.

crash cutoff\text{crash cutoff}

Crash point

The truncated log has 5 records. Note: recovery classifies transactions using only those records.

records before crash=5\text{records before crash}=5

a simplified redo/undo recovery over a tiny log; ARIES detail (fuzzy checkpoints, CLRs, media recovery) and real durability/fsync are beyond these traces - no product claims.

Crash point - CRASH after LSN 5lsntxntypeitembefore->after1T1begin2T1writeA0->53T1commit4T2begin5T2writeB0->9 winners: T1 | losers: T2; redo LSNs: 2; undo LSNs: 5itemvalueA5B0

Recovered table

The recovered state has 2 items. Note: the item values fall out of recovery, not author text.

recovered items=2\text{recovered items}=2

a simplified redo/undo recovery over a tiny log; ARIES detail (fuzzy checkpoints, CLRs, media recovery) and real durability/fsync are beyond these traces - no product claims.

Crash point - CRASH after LSN 5lsntxntypeitembefore->after1T1begin2T1writeA0->53T1commit4T2begin5T2writeB0->9 winners: T1 | losers: T2; redo LSNs: 2; undo LSNs: 5itemvalueA5B0

Summary

Crash recovery is deterministic replay over the available log prefix. Note: this is simplified redo and undo; ARIES detail, fuzzy checkpoints, CLRs, media recovery, and real fsync durability are deferred.

available prefix\text{available prefix}