两阶段提交流程
1.redolog标记为预提交状态
2.binlog写入
3.redolog标记为commit
解决的问题
前置知识
在innodb引擎中存在redolog,用于提供mysql崩溃恢复的能力(crash-safe)
server层中存在binlog,用于数据恢复、主从复制
需要做到
保证crash-safe后的数据和binlog恢复的数据一致
如果不存在两阶段时
1.if:先写redolog,后写binlog:
在crash-safe后恢复的数据可能比binlog恢复的数据多
2.if:先写binlog,后写redolog:
在数据恢复后的数据可能比crash-safe后恢复的数据多
crash-safe流程
评论区