dear all:
i have two questions about innodb’s implementation for flushing dirty pages to data files!
1.As we all known ,innodb use a transaction log[redo log] to act as a permenent record for commited transaction,
[B]Once the log is safely on disk, the transactions are permanent, InnoDB uses a background thread
to flush the changes to the data files intelligently.And Once the recored is updated ,mysql will mark the related
data page in buffer pool as dirty.[/B][From High Performance mysql].
So my question is
what does [a background thread] do with the dirty pages ? does the information in
transaction log enough for that thread to update related data files in filesystem!
2.As mysql use MVCC to supply multi-versin data in tablespace[on disk],and once we update the
record,mysql will mark the related data page in bufferpool as dirty page!
so my question is
what’s the relation between the mvcc in filesystem and dirty page in buffer pool!
and when does mysql write the new multi-version data to the filesystem as writing to the filesystem is a
time-consuming job!
The picture is what i understand ,does it right!
Thanks in advance!