分布式一致性算法

2019-05-04  本文已影响0人  bernierayxu
1. 什么是分布式一致性?
2. 什么是2PC?

答:两阶段提交2PC,将操作划分为预操作,提交/回滚两个阶段。其中需要记录undo日志和redo日志。普通的数据库操作也是两阶段提交。两阶段提交的不足是第一阶段造成阻塞,可能是参与者的问题,也可能是协调者挂了,导致第一阶段锁着的参与者无法释放资源。此时需要人工干预。两阶段提交的另一个不足是第二阶段也会造成不一致,在回滚状态的参与者突然挂了,此时就会出现数据不一致的情况,此时需要人工干预。


第一阶段
第一阶段
第一阶段
第一阶段
第二阶段
第二阶段
第二阶段
信息流
3. 什么是3PC?

答:是对2PC的改进。参与者添加了等待时长,如果时间超过等待预期,则认为协调者挂了,自动回滚。3PC会出现数据不一致的情况在第二阶段,如果部分参与者回复preCommit失败,但是此时协调者挂了,则在超时之后其他回复preCommit成功的会自动commit,造成数据不一致。3PC的缺点在于设置超时时长,因为很难确认超时时长,所以市面上很少有使用3PC的应用。


信息流
4. 什么是Paxos?

答:可以不用人工干预,真正做到分布式一致性。背景是因为一个集群中的多个节点都可以接受写操作,然后扩散写操作的时候因为网络延迟问题,会造成某些节点更新快,某些节点更新满,这时候同时写入的两个写操作会造成集群最终不一致。Paxos的思路是为了减少leader选举所用的时间,只需要其中一部分节点进行参与投票的环节即可。

5. 其他基于Paxos的算法有哪些?
上一篇 下一篇

猜你喜欢

热点阅读