Optimizations
•Use LSNs recorded in each page of data, to avoid repeating changes already reflected in page
•Checkpoints: flush pages that have been in buffer too long
–Record in log that this has been done
–During restart, only repeat history since last (or second-last) checkpoint