加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 安全 > 正文

2017数据库大会实录-MySQL核心参数含义的源码解析

发布时间:2021-01-17 14:01:40 所属栏目:安全 来源:网络整理
导读:《2017数据库大会实录-MySQL核心参数含义的源码解析》要点: 本文介绍了2017数据库大会实录-MySQL核心参数含义的源码解析,希望对您有用。如果有疑问,可以联系我们。 5月11-13日在北京国际会议中心举行数据库大会,有幸得友人推荐在大会上讲了一场.源于自己

其会调用page_cleaner_flush_pages_recommendation函数,我们后面简称它为建议函数或者推荐函数.在执行刷新之前,会用建议函数生成每个buffer pool需要刷新多少个脏页的建议.具体是怎么生成建议的呢?就是子目录的内容,后面会详细讲到.生成完刷新建议之后,其后就会产生请求刷新的事件,后台刷新线程在收到请求刷新的事件后,会执行pc_flush_slot函数对某个缓存池进行刷新,刷新的过程首先是对lru列表进行刷新,执行的函数为buf_flush_LRU_list,完成LRU列表的刷新之后,就会根据建议函数生成的建议对脏页列表进行刷新,执行的函数为buf_flush_do_batch.

所有的buffer pool 都已经开始刷新之后,就开始等待所有buffer pool刷新的完成,等待函数为pc_wait_finished.

上面介绍了协调函数的工作流程,下面我们就逐步来解析这个函数以及相关子函数.

这个协调函数的作用前面已经讲过,是进行刷新循环的调度的.稍微补充一下,它期望每秒钟对buffer pool 进行一次刷新调度.如果相邻两次刷新调度的间隔超过4000ms,也就是4秒钟,mysql的错误日志中会记录相关信息,意思就是“本来预计1000ms的循环花费了超过4000ms的时间.

我们来看一下后台刷新协调函数的源代码:

左边是循环超时时,在错误日志记下相关信息.右边是调用对每个buffer pool 生成需要刷新多少脏页的建议函数.

接下来,我们来看后台刷新协调函数的主体流程.

1.? 调用建议函数,对每个缓冲池实例生成脏页刷新数量的建议.

2.? 生成刷新建议之后,通过设置事件的方式,向刷新线程发出刷新请求.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读