![]()  | 
  
    MySQL 8.0.44
    
   Source Code Documentation 
   | 
 
Functions | |
| bool | initialize (ulint n_pages_last) | 
| Initialize flush parameters for current iteration.  More... | |
| void | set_average () | 
| Set average LSN and page flush speed across multiple iterations.  More... | |
| ulint | get_pct_for_dirty () | 
| Calculates if flushing is required based on number of dirty pages in the buffer pool.  More... | |
| ulint | get_pct_for_lsn (lsn_t age) | 
| Calculates if flushing is required based on redo generation rate.  More... | |
| ulint | set_flush_target_by_lsn (bool sync_flush, lsn_t sync_flush_limit_lsn) | 
| Set page flush target based on LSN change and checkpoint age.  More... | |
| ulint | set_flush_target_by_page (ulint n_pages_lsn) | 
| Set page flush target based on dirty pages in buffer pool.  More... | |
| ulint | page_recommendation (ulint last_pages_in, bool is_sync_flush, lsn_t sync_flush_limit_lsn) | 
| This function is called approximately once every second by the page_cleaner thread, unless it is sync flushing mode, in which case it is called every small round.  More... | |
Variables | |
| std::chrono::steady_clock::time_point | cur_iter_time | 
| Time stamp of current iteration.  More... | |
| lsn_t | cur_iter_lsn = 0 | 
| LSN at current iteration.  More... | |
| ulint | cur_iter_pages_dirty = 0 | 
| Number of dirty pages in flush list in current iteration.  More... | |
| ulint | cur_iter_dirty_pct = 0 | 
| Dirty page percentage in buffer pool.  More... | |
| std::chrono::steady_clock::time_point | prev_iter_time | 
| Time stamp of previous iteration.  More... | |
| ulint | prev_iter_pages_dirty = 0 | 
| Number of dirty pages in flush list at previous iteration.  More... | |
| ulint | prev_iter_pages_flushed = 0 | 
| Actual number of pages flushed by last iteration.  More... | |
| lsn_t | lsn_avg_rate = 0 | 
| Average redo generation rate.  More... | |
| ulint | page_avg_rate = 0 | 
| Average page flush rate.  More... | |
| lsn_t | prev_lsn = 0 | 
| LSN when last average rates are computed.  More... | |
| std::chrono::steady_clock::time_point | prev_time | 
| Time stamp when last average rates are computed.  More... | |
| ulint | n_iterations = 0 | 
| Number of iteration till average rates are computed.  More... | |
| ulint | sum_pages = 0 | 
| Pages flushed till last average rates are computed.  More... | |
| ulint Adaptive_flush::get_pct_for_dirty | ( | ) | 
Calculates if flushing is required based on number of dirty pages in the buffer pool.
Calculates if flushing is required based on redo generation rate.
| age | in: current age of LSN. | 
| bool Adaptive_flush::initialize | ( | ulint | n_pages_last | ) | 
Initialize flush parameters for current iteration.
| [in] | n_pages_last | number of pages flushed in last iteration | 
| ulint Adaptive_flush::page_recommendation | ( | ulint | last_pages_in, | 
| bool | is_sync_flush, | ||
| lsn_t | sync_flush_limit_lsn | ||
| ) | 
This function is called approximately once every second by the page_cleaner thread, unless it is sync flushing mode, in which case it is called every small round.
Based on various factors it decides if there is a need to do flushing.
| last_pages_in | the number of pages flushed by the last flush_list flushing | 
| is_sync_flush | true iff this is sync flush mode | 
| sync_flush_limit_lsn | low limit for oldest_modification if is_sync_flush is true | 
| void Adaptive_flush::set_average | ( | ) | 
Set average LSN and page flush speed across multiple iterations.
Set page flush target based on LSN change and checkpoint age.
| [in] | sync_flush | true iff this is sync flush mode | 
| [in] | sync_flush_limit_lsn | low limit for oldest_modification if sync_flush is true | 
Set page flush target based on dirty pages in buffer pool.
Set only if the target are is found to be higher than the target evaluated based on LSN.
| [in] | n_pages_lsn | number of pages estimated and set based on LSN | 
| ulint Adaptive_flush::cur_iter_dirty_pct = 0 | 
Dirty page percentage in buffer pool.
| lsn_t Adaptive_flush::cur_iter_lsn = 0 | 
LSN at current iteration.
| ulint Adaptive_flush::cur_iter_pages_dirty = 0 | 
Number of dirty pages in flush list in current iteration.
| std::chrono::steady_clock::time_point Adaptive_flush::cur_iter_time | 
Time stamp of current iteration.
| lsn_t Adaptive_flush::lsn_avg_rate = 0 | 
Average redo generation rate.
| ulint Adaptive_flush::n_iterations = 0 | 
Number of iteration till average rates are computed.
| ulint Adaptive_flush::page_avg_rate = 0 | 
Average page flush rate.
| ulint Adaptive_flush::prev_iter_pages_dirty = 0 | 
Number of dirty pages in flush list at previous iteration.
| ulint Adaptive_flush::prev_iter_pages_flushed = 0 | 
Actual number of pages flushed by last iteration.
| std::chrono::steady_clock::time_point Adaptive_flush::prev_iter_time | 
Time stamp of previous iteration.
| lsn_t Adaptive_flush::prev_lsn = 0 | 
LSN when last average rates are computed.
| std::chrono::steady_clock::time_point Adaptive_flush::prev_time | 
Time stamp when last average rates are computed.
| ulint Adaptive_flush::sum_pages = 0 | 
Pages flushed till last average rates are computed.