zookeeper

2019-03-26  本文已影响0人  徐振杰

2pc两阶段的提交:
先确认 prepare获得确认,然后commit
优点:原理简单,实现方便
缺点:

  1. 同步阻塞:每个参与者要等待其他所有的参与者,限制性能
  2. 单点问题:如果协调者出现问题,尤其是在第二个阶段,会导致出去锁定事物资源的状态
  3. 数据不一致:如果再commit之后发生了网络异常会导致数据不一致
  4. 如果参与者故障,协调者只能通过自己的超时判断终端事物,任何一个节点都可能导致事物失败

3pc三阶段的提交:
深入理解分布式系统的2PC和3PC
存在的问题:
在doCommit阶段,如果参与者无法及时接收到来自协调者的doCommit或者rebort请求时,会在等待超时之后,会继续进行事务的提交。

所以,由于网络原因,协调者发送的abort响应没有及时被参与者接收到,那么参与者在等待超时之后执行了commit操作。这样就和其他接到abort命令并执行回滚的参与者之间存在数据不一致的情况。

上一篇 下一篇

猜你喜欢

热点阅读