InnoDB’s checkpoint algorithm is not well documented. It is too
complex to explain in even a long blog post, because to
understand checkpoints, you need to understand a lot of other
things that InnoDB does. I hope that explaining how InnoDB does
checkpoints in high-level terms, with simplifications, will be
helpful. A lot of the simplifications are because I do not want
to explain the complexities of how the simple rules can be
tweaked for optimization purposes, while not violating the ACID
guarantees they enforce.
A bit of background: Gray and Reuter’s classic text on transaction
processing introduced two types of checkpoints beginning on
page 605. There is a sharp checkpoint, and there
is a fuzzy checkpoint.
A sharp checkpoint is accomplished by flushing all modified pages
for committed transactions to disk, and …
[Read more]