Restart Algorithm (rev 2)
No need to redo records before last checkpoint, so
- Starting with the last checkpoint, scan forward in the log.
- Redo all update records. Process all aborts. Maintain list of active transactions (initialized to content of checkpoint record).
- After you’re done scanning, abort all active transactions
Restart time is proportional to the amount of log after the last checkpoint.
Reduce restart time by checkpointing frequently.
Thus, checkpointing must be cheap.