MST

星途 面试题库

面试题:分布式系统中3PC超时机制在不同阶段的作用

在分布式事务3PC(三阶段提交)协议里,分别阐述每个阶段超时机制发挥的作用,以及对整个分布式事务一致性的影响。
25.3万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

第一阶段(CanCommit)

  • 超时机制作用:协调者等待所有参与者响应的超时时间。若超时,协调者认为部分参与者无法正常响应,中断事务。避免因部分参与者故障或网络延迟,导致协调者无限期等待,提高系统的响应性。
  • 对一致性影响:超时中断事务,能保证不会启动一个部分参与者不可用的事务,维持事务所有参与者状态的一致性,避免部分节点已准备,部分未准备的不一致情况。

第二阶段(PreCommit)

  • 参与者超时机制作用:参与者等待协调者PreCommit指令的超时时间。若超时,参与者回滚事务。防止参与者因协调者指令未送达,长期处于准备状态占用资源。
  • 对参与者一致性影响:超时回滚确保参与者不会因等待过久而维持一个不确定的事务状态,与其他正常回滚或提交的参与者保持一致。
  • 协调者超时机制作用:协调者等待所有参与者PreCommit响应的超时时间。若超时,协调者向所有参与者发送Abort指令,取消事务。避免协调者在部分参与者未响应时,做出错误决策。
  • 对一致性影响:确保所有参与者状态一致,若部分参与者超时未响应,协调者通过发送Abort指令使所有参与者回滚,防止出现部分提交部分未提交的不一致。

第三阶段(DoCommit)

  • 协调者超时机制作用:协调者发送DoCommit指令后,等待所有参与者确认完成事务操作的超时时间。若超时,协调者会尝试再次发送指令或采取补偿措施。
  • 对一致性影响:超时后重试等操作,尽量确保所有参与者都能正确完成事务提交或回滚,维持一致性。若协调者未采取措施,可能部分参与者已提交,部分未提交,出现数据不一致。
  • 参与者超时机制作用:参与者等待协调者最终指令的超时时间。若超时,参与者根据自身状态决定提交或回滚事务(通常倾向于提交,因为在PreCommit阶段已准备好且网络问题可能导致协调者指令未送达)。
  • 对一致性影响:参与者超时提交可能会与协调者预期不一致,若协调者实际想回滚但指令未送达,可能导致数据不一致。但这种设计也是一种权衡,在一定程度上保证可用性,降低因协调者故障导致参与者长期阻塞的风险。