事务提交分三个阶段
– 每阶段若干个线程进入阶段队列,第一个(leader)线程完成每个线程的会话的阶段任务
– 各阶段并行执行,任一个阶段只有一组事务
– 第二,三阶段可以追加合并到前面一批的队列,原leader中途变为follower
– flush阶段,为每个事务依次做:
• 存储引擎prepare, 一次性为全组刷存储引擎事务日志
• 产生XID_EVENT, 固化事务的binlog cache
• 产生gtid-log-event(事务时间戳,全局时间戳)
• 写入事务的binlog到binlog文件中
– sync阶段
• binlog group commit等待
• 一次性刷盘binlog文件
– commit
• 存储引擎commit,按照队列内顺序做