美文网首页
【MySQL】组提交技术的阅读思考

【MySQL】组提交技术的阅读思考

作者: a0f39b0b2030 | 来源:发表于2018-11-01 16:18 被阅读10次

组提交难点

一.给leader进程带来了不公平

二.兼顾redo和binlog顺序的对应

三.事务redo与binlog的写流程与fsync时机(没有引进组提交时的流程)

四.为什么要组提交?(简单组提交下的弊病,硬件资源速度的不一致性,带来的优势)

关键参数与流程

flush阶段

将Binlog写入内存,(好像没有Binlog buffer的说法,直接写入内存,内存写入条带文件)。

binlog_max_flush_queue_time 每多少秒去写入一次Binlog到内存(官方)。flush阶段中一批事务等待的时间。类似于检票处一次用Bodycheck牌挡住一定数量的人。默认0,这个参数已经废弃

sync->commit阶段,主要是在sync,sync(刷盘binlog)。若sync_binlog不为1,多个组应该卡在这儿。岂不是导致commit ack变慢?不对,只是加速

binlog_group_commit_sync_delay 应该是用来控制leader进度的,也就是发车间隔时间。这个是导致leader不公平的主要原因。单位微妙。微妙级别的话,相对于刷盘的时间,leader的不公平看起来微乎其微。

binlog_group_commit_sync_no_delay_count 最低发车座位数, 类似于定员流水发车大巴,车上的人到达一定的数量后,直接发车,不在等待一个最小发车间隔

commit阶段 redo log buffer刷盘

sync_binlog的含义就变了,假定设为1000,表示的不是1000个事务后做一次fsync,而是1000个事务组。默认1的话就是,1个事务组提交一次fsync Binlog

也就是说,比如, 1-1000个事务,前面999个都没有sync,默认是sync成功的。第1000个事务时进行真正的binlog sync 。若中间挂了,没有sync成功,那么1-1000事务的binlog 都没有被记录

第一次等待的时间可能不太好理解,,应该是第一次分批限流。比方说,保证流入sync阶段的都是按时间分段的,而不是离散的算是预分组吧。找不到很合适的例子说明

总结

在读写IO相对于内存的速度有很大差距的情况下,把单次离散写,合并成批量连续写。硬盘的寻道时间要比顺序写硬盘的时间要慢很多。尽量少寻道,也是一种思路

参考

直播抓娃娃APP找捌跃科技

阿里月报 201501

https://www.kancloud.cn/taobaomysql/monthly/67157

官方手册

https://dev.mysql.com/doc/refman/5.7/en/replication-options-reference.html

姜承尧

《Innodb存储引擎 P322》

延伸阅读

fb关于组提交的文章 发布时间:2010 年 10 月 7 日 周四 02:16

https://www.facebook.com/notes/mysql-at-facebook/group-commit/438641125932/

没有精力

其实看源码最直接,没有精力

转载自:http://blog.51cto.com/l0vesql/2311534

相关文章

  • 【MySQL】组提交技术的阅读思考

    组提交难点 一.给leader进程带来了不公平 二.兼顾redo和binlog顺序的对应 三.事务redo与bin...

  • MySQL组提交

    RedoLog 写入机制 BinLog 写入机制 日志安全模式 组提交 参数配置 相关

  • mysql组提交

    binlog cache 与 redo log buffer我们知道binlog是用于主从复制与数据恢复的,那么b...

  • MySQL组复制提交流程

    author:sufei 版本:8.0.16 一、简介  本文主要介绍MySQL 组复制的提交流程。在理解组复制的...

  • 阅读《思考的技术》

    思考力是需要通过训练才能不断提高的,但是只是思考是不够的,我们还需要足够的说服力,让别人信服,相信你是对的...

  • 阅读《思考的技术》

    “尽信书不如无书”,相信大家都听过这名话,就是说对一切结论我们都要保持一种怀疑态度,其实就是表明大家要有自己的...

  • 阅读《思考的技术》

    预判能力的概念、如何预判及预判能力的重要性。 无论是企业还是个人,都希望对未来有一个较为准确的预判,通...

  • 阅读《思考的技术》

    每天,我们都会看到洪水般涌来的信息,里面有黄金,也有泥沙;有真的,也有假。另外,在个人或集体决策的时候,也...

  • mysql两阶段提交

    1.两阶段提交 MySQL中经常说的WAL技术,WAL的全称是Write- Ahead Logging,它的关键点...

  • 《刘大猫的财富之旅》读后感

    又到了金马社群提交作业的时候了,本周的主题是阅读《刘大猫的财富之旅》并提交读后感。 这种被倒逼着去阅读并思考输出的...

网友评论

      本文标题:【MySQL】组提交技术的阅读思考

      本文链接:https://www.haomeiwen.com/subject/khpxxqtx.html