I'm looking into InnoDB internals regarding buffer pool, checkpoint and dirtypage. However there isn't enough information to answer my question.
- When I run
show global status
, I can getInnodb_buffer_pool_pages_dirty
andInnodb_buffer_pool_bytes_dirty
.
I want to know where this information comes from. Does any memory (such as buffer pool or information schema) keep this information and just show them when a query comes? Or does a logical object calculate them whenever a query comes? If so, what is the basic information which could be the materials to calculate?
When I run
SHOW ENGINE INNODB STATUS\G
,mysql
shows the following information:LOG --- Log sequence number 9682004056 Log flushed up to 9682004056 Last checkpoint at 9682002296
I also want to know where this information comes from. Especially the "Last checkpoint at". As I researched, the log sequence number is related to the "Log Block Header Number" of InnoDB log blocks in the redo log files. Is this right? Then how does MySQL convert it to a log sequence number and how does it get the base information for them?