Age-based flush list flushing
Implement new, age-based flush list flushing heuristics.
buf_flush_list() flush list flush algorithm in MySQL 5.6 has the following properties.
- Flushing is limited by both the maximum page count (min_n arg) and the desired new oldest oldest_modification in the buffer pool (lsn_limit) arg. Flushing stops when either limit is reached.
- The maximum page count is distributed across all instances evenly.
- On the other hand, buffer pool usage is non-uniform, which means that limiting flushing by both an LSN limit and an uniformly-
This is addressed by
- removing LSN limit as an input for the adaptive flushing algorithm, leaving only the page count. LSN limit is not critical below the sync preflush zone as long as the page count is distributed in a way that maximizes the oldest unflushed page age advance:
- instead of splitting the target page count to the instances evenly, allocate more pages to the instances with older oldest unflushed pages, and fewer pages to the instances with younger oldest unflushed pages. This is done by calculating, for each instance individually, a minimum number of pages to flush that would result in the oldest unflushed page being advanced globally.
This is governed by a new global, dynamic system variable --innodb-
Blueprint information
- Status:
- Started
- Approver:
- None
- Priority:
- Medium
- Drafter:
- Laurynas Biveinis
- Direction:
- Approved
- Assignee:
- None
- Definition:
- Drafting
- Series goal:
- Accepted for 5.6
- Implementation:
- Slow progress
- Milestone target:
- None
- Started by
- Laurynas Biveinis
- Completed by