组提交难点
一.给leader进程带来了不公平
二.兼顾redo和binlog顺序的对应
三.事务redo与binlog的写流程与fsync时机(没有引进组提交时的流程)
四.为什么要组提交?(简单组提交下的弊病,硬件资源速度的不一致性,带来的优势)
关键参数与流程
flush阶段
sync->commit阶段,主要是在sync,sync(刷盘binlog)。若sync_binlog不为1,多个组应该卡在这儿。岂不是导致commit ack变慢?不对,只是加速
commit阶段 redo log buffer刷盘
总结
在读写IO相对于内存的速度有很大差距的情况下,把单次离散写,合并成批量连续写。硬盘的寻道时间要比顺序写硬盘的时间要慢很多。尽量少寻道,也是一种思路
参考
阿里月报 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/
没有精力
其实看源码最直接,没有精力