In MySQL 5.6 InnoDB has a dedicated thread (page_cleaner) that’s
responsible for performing flushing operations. Page_cleaner
performs flushing of the dirty pages from the buffer pool based
on two factors:
- access pattern - the least recently used pages will be flushed by LRU flusher from LRU_list when buffer pool has no free pages anymore;
- age – the oldest modified non-flushed pages are part of flush_list structure and will be flushed by flush_list flusher based on several heuristics.
There is a good overview of the page_cleaner and also here you may find some details about flushing in MySQL 5.6. Below I describe several additional aspects of the flush_list flushing that was not really …[Read more]