什么时候在分布式系统中使用一致性算法?

时间:2016-10-26 08:16:17

标签: database distributed-computing distributed-database

据我所知,在分布式系统中,我们应该处理网络分区故障,这可以通过使用相同数据的多个副本来解决。

这是我们使用共识算法的唯一地方吗? 2PC / 3PC / Paxos有什么区别(是3P的paxos修改版?如果是2PC / 3PC,PC也是一种共识算法?)

1 个答案:

答案 0 :(得分:3)

网络分区未解决"通过拥有相同数据的许多副本。虽然冗余对于处理任何类型的失败都是必不可少的。:)

网络分区还有许多其他问题。通常,为了增加对网络分区的容忍度,您使用的算法依赖于仲裁而不是总通信,在quroum方法中,只要可以访问2f中的f + 1个节点,您仍然可以在分区的一侧进行。例如,Paxos使用仲裁方法。很明显,像2PC这样的协议在任何类型的网络分区的情况下都无法取得进展,因为它需要"投票"来自所有节点。

  

2PC / 3PC / Paxos有什么区别(是3P的paxos修改版?如果是2PC / 3PC,PC也是一种共识算法?)

2PC / 3PC / Paxos是共识协议的所有变体,尽管2PC和3PC通常被描述为处理分布式系统中的原子提交的更具体方案"这基本上是一个共识问题。 2PC,3PC,Paxos相似但不同。您可以在网上轻松找到有关每种算法的详细信息。

  

这是我们使用共识算法的唯一地方吗?

共识协议在分布式系统中有许多用例,例如:原子提交,原子广播,领导者选举或基本上任何需要一组进程就某些价值或行动达成一致的算法。

警告:分布式系统的共识协议和相关问题并非易事,您需要进行一些阅读才能获得深刻的理解。如果您阅读学术论文很舒服,您可以在网上找到大多数着名的论文,例如" Paxos简单易用。通过Leslie Lamport,你可以通过谷歌搜索找到好的博客。在我看来,wiki-paxos文章质量非常好!

希望能回答你的一些问题,尽管我可能会向你介绍更多! (如果您对此感兴趣,可以进行一些研究)。