分布式事务中必须处理超时、节点(coordinator、participate)宕机、节点宕机恢复(fail-recover)、网络分区等异常情况。2PC和3PC基本概念

基本概念

  • PC(phase commit) 表示分阶段提交
  • 2PC 包含两个阶段:voting和commit
  • 3PC 包含三个阶段:voting、pre-commit和commit

2PC和3PC的区别

2PC和3PC最大的区别在于是否blocking,Why 2PC is blocking?

2PC及缺点

2PC能处理参与者宕机的情况,但无法处理协调者和参与者同时宕机的情况一致性、2PC和3PC

  • 协调者失败,会blocking参与者,参与者没法单独决定是提交(commit)还是回滚(rollback)

3PC及缺点

3PC引入time-out及pre-commit解决2PC blocking参与者的问题,但仍然无法解决网络分区问题。