一.給leader進程帶來了不公平html
二.兼顧redo和binlog順序的對應mysql
三.事務redo與binlog的寫流程與fsync時機(沒有引進組提交時的流程)sql
四.爲何要組提交?(簡單組提交下的弊病,硬件資源速度的不一致性,帶來的優點)ide
將Binlog寫入內存,(好像沒有Binlog buffer的說法,直接寫入內存,內存寫入條帶文件)。htm
binlog_group_commit_sync_delay 應該是用來控制leader進度的,也就是發車間隔時間。這個是致使leader不公平的主要緣由。單位微妙。微妙級別的話,相對於刷盤的時間,leader的不公平看起來微乎其微。進程
sync_binlog的含義就變了,假定設爲1000,表示的不是1000個事務後作一次fsync,而是1000個事務組。默認1的話就是,1個事務組提交一次fsync Binlog
也就是說,好比, 1-1000個事務,前面999個都沒有sync,默認是sync成功的。第1000個事務時進行真正的binlog sync 。若中間掛了,沒有sync成功,那麼1-1000事務的binlog 都沒有被記錄事務
在讀寫IO相對於內存的速度有很大差距的狀況下,把單次離散寫,合併成批量連續寫。硬盤的尋道時間要比順序寫硬盤的時間要慢不少。儘可能少尋道,也是一種思路內存
阿里月報 201501
https://www.kancloud.cn/taobaomysql/monthly/67157 資源
官方手冊
https://dev.mysql.com/doc/refman/5.7/en/replication-options-reference.htmlget
姜承堯
《Innodb存儲引擎 P322》
fb關於組提交的文章 發佈時間:2010 年 10 月 7 日 週四 02:16
https://www.facebook.com/notes/mysql-at-facebook/group-commit/438641125932/
沒有精力