Semi 流程异常分析

Semi 流程异常分析

正常流程

1 在图中(1) 完成binlog 写入文件的pageCache
2 在图中(2) 完成binlog sync 的磁盘binlog 文件
3 在图中(3) 完成binlog 的异步发送,把binlog 发送到备库(等待sync完成,更新binlog updte pos,sync_binlog=1的流程)
4 在图中(4) 完成binlog 发送完成的确认信息(此处可以完全确认binlog已经发送到从库)
5 在图中(5) 用户线程被激活,完成第三阶段的事务提交

异常流程分析

1 在图中(1)完成,还未开始图中(2)时宕机,从库肯定没有当前事务,主库不确定是否有。
因写入pageCache的数据,不做sync操作有可能被操作系统做sync操作,导致当前的
Binlog 已经sync到磁盘。
2 在图中(2)完成,还未开始图中(3)(或者当前事务的binlog还未完整的发送到从库
即图中(3)进行了一半)宕机,主库有,从库没有。
3 在图中(3)完成后,还未开始图中(5)宕机,主库肯定有,从库肯定有

- 宕机点 宕机点 主库 从库
1 (1)完成 (2)未开始 不确定
2 (2)完成 (3)未开始或 完成一半
3 (3)完成 4完成或者未完成
上一篇:编译时MSIL注入--实践Mono Cecil(1)


下一篇:斗地主随机发牌实现