Checkpointing
Periodically, the DBMS creates a checkpoint, in order to minimize the time taken to recover in the event of a system crash. Write to log:
- begin_checkpoint record: Indicates when chkpt began.
- end_checkpoint record: Contains current Xact table and dirty page table. This is a `fuzzy checkpoint’:
- Other Xacts continue to run; so these tables accurate only as of the time of the begin_checkpoint record.
- No attempt to force dirty pages to disk; effectiveness of checkpoint limited by oldest unwritten change to a dirty page. (So it’s a good idea to periodically flush dirty pages to disk!)
- Store LSN of chkpt record in a safe place (master record).