第二章:一致性协议
最著名:二阶段提交协议2PC;三阶段提交协议;Paxos算法
- 2PC和3PC的核心思想:
每一个机器节点无法直接获取其他分布式节点的操作结果,因此需要引入一个被称为”协调者“的组件来统一调度所有分布式节点的执行逻辑;
被调度的分布式节点则被称为”参与者“;
协调者负责调度参与者的行为,并最终决定这些参与者是否要把事务真正进行提交
2.1 2PC(Two-Phase-Commit)
作用:保持原子性和一致性
场景:绝大部分的关系型数据库
协议分为两个阶段来进行处理
2.1.2 阶段一:提交事务请求(投票阶段)
即开始执行事务操作
1.事务询问:协调者向所有参与者发起询问,是否可以执行事务提交操作,并等待参与者们的响应
2.执行事务:参与者们执行事务操作,并将Undo和Redo信息写入事务日志
3.各参与者向协调者反馈事务询问的响应:若成功执行,则反馈给协调者yes;若没有则no
2.1.3 阶段二:执行事务提交(执行阶段)
此阶段的协调者会根据参与者们的反馈情况来决定最终是否可以进行事务提交操作
- 若反馈为yes:执行事务提交,即提交事务
1.协调者向参与者们发送提交请求
2.参与者们进行事务提交
3.参与者们完成事务提交后,反馈事务提交结果Ack
4.协调者收到所有Ack反馈后