innodb自适应刷脏页

主要涉及2个函数:

cur_lsn = log_get_lsn();
oldest_lsn = buf_pool_get_oldest_modification();
age = cur_lsn > oldest_lsn ? cur_lsn - oldest_lsn : 0;
pct_for_dirty = af_get_pct_for_dirty();
pct_for_lsn = af_get_pct_for_lsn(age);
pct_total = ut_max(pct_for_dirty, pct_for_lsn);
//avg_page_rate等于上一个srv_flushing_avg_loops循环里刷磁盘的脏页数的平均值
//最大不会超过srv_max_io_capacity值
n_pages = (PCT_IO(pct_total) + avg_page_rate) / 2;
if (n_pages > srv_max_io_capacity) {
	    n_pages = srv_max_io_capacity;
}
n_pages = page_cleaner_do_flush_batch(
		n_pages, oldest_lsn + lsn_avg_rate * (age_factor + 1));

af_get_pct_for_dirty:
   //获取脏页百分比
   buf_get_total_list_len(&lru_len, &free_len, &flush_list_len);
   ratio = (100 * flush_list_len) / (1 +
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值