void master_thread(){ goto loop; loop: for(int i = 0; i<10; i++){ thread_sleep(1) // sleep 1 second do log buffer flush to disk if ( last_one_second_ios < 5% innodb_io_capacity ) do merge 5% innodb_io_capacity insert buffer if ( buf_get_modified_ratio_pct > innodb_max_dirty_pages_pct ) do buffer pool flush 100% innodb_io_capacity dirty page else if enable adaptive flush do buffer pool flush desired amount dirty page if ( no user activity ) goto backgroud loop } if ( last_ten_second_ios < innodb_io_capacity) do buffer pool flush 100% innodb_io_capacity dirty page do merge at most 5% innodb_io_capacity insert buffer do log buffer flush to disk do full purge if ( buf_get_modified_ratio_pct > 70% ) do buffer pool flush 100% innodb_io_capacity dirty page else do buffer pool flush 10% innodb_io_capacity dirty page do fuzzy checkpoint goto loop background loop: do full purge do merge 100% innodb_io_capacity insert buffer if not idle: goto loop: else: goto flush loop flush loop: do buffer pool flush 100% innodb_io_capacity dirty page if ( buf_get_modified_ratio_pct> innodb_max_dirty_pages_pct ) go to flush loop goto suspend loop suspend loop: suspend_thread() waiting event goto loop; }
master thread源码分析-伪代码
原创
©著作权归作者所有:来自51CTO博客作者cloudhorizon的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:MySQL 关键特性- 插入缓冲
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java Thread Dump文件分析
Java Thread Dump文件分析
java 堆栈 Java -
Thread类【JDK源码分析】
Thread类【JDK源码分析】
java jvm 开发语言 优先级 处理程序 -
《k3s 源码解析2 ----master逻辑源码分析》
一、k3s 源码入口: 二、k3s master入口: 三、配置文件数据结构
go Slice 数据结构 资源调度