Server activity check fixes for page cleaner thread

Registered by Laurynas Biveinis on 2013-10-03

The page cleaner performs LRU and flush list flushing if it considers the server to be active, that is, srv_check_activity() advanced since the last iteration. If it hasn't, then it performs an I/O-capacity sized flush list flush batch.

This has two problems:
1) Cleaner performs LRU flushing only if it considers server to be active. If the server is not considered to be active, but there is e.g. purge working, it will exhaust free lists and will have to resort to single page flushes. (bug 1234562)
2) Likewise flush list flushing happens at I/O capacity if server is considered to be idle, completely disregarding that background activity already may be using I/O, thus flush list flushing should be throttled. The following background activities caused buffer pool reads and writes, but were not bumping server activity: purge coordinator and workers, background ibuf merge.

Thus:
1) Perform LRU flushing unconditionally in the cleaner.
2) Bump server activity in purge and background ibuf merge.

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
Laurynas Biveinis
Direction:
Approved
Assignee:
Laurynas Biveinis
Definition:
Approved
Series goal:
Accepted for 5.6
Implementation:
Implemented
Milestone target:
milestone icon 5.6.13-61.0
Started by
Laurynas Biveinis on 2013-10-03
Completed by
Laurynas Biveinis on 2013-10-03

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.