InnoDB flushes pages in very simple logic – it goes to the tail
of LRUsed list (which has pages for whole buffer pool), and walks
it from tail to head, until it finds enough pages to flush. If
flushing is aggressive, dirty pages will be only at the head of
the list, not at the tail, but InnoDB will still be traversing it
fully, tail to head.
Look at that, Jay Janssen notices:
I rarely say the buffer pool beyond a few percent dirty.
Devananda writes:
by enabling adaptive flushing, InnoDB purged modified data much
more aggressively, resulting in very little unflushed changes
See, while it traverses the whole buffer pool it holds global
buffer pool lock. When some thread that holds kernel mutex tries
to acquire …
[Read more]