InnoDB internals - checkpoint, LSN, dirty pages
Your answers are on the source code: innodb_buffer_pool_pages_dirty. Most of these variables are maintained on memory directly or through very simple calculations. There is no danger of durability loss, as the ones that are &quot;essential&quot; for innodb to work can be recalculated from the transaction log or are 0 on start.

Not really, the lsn is just an offset in bytes, it is maintained on memory (log_sys-&gt;lsn) and in the case of a failure, it can be recovered from the header of the transaction log (plus pure file offsets). They are changed on commit/log flush/tablespace flush, both on memory and on disk (exact method depends on the durability configuration, buffering type, etc.).


For basic InnoDB stuff, you can check this blog post by the Oracle InnoDB team and/or check the source code for InnoDB.