分布式一致性算法

分布式一致性的算法也叫作共识(Consensus)算法。共识表示在多台机器之间,能同步一个内容不断增加的文件。需要考虑的问题: - 装有文件的机器出了问题怎么办 - 如何确保找到的机器刚好就有完整的文件 - 文件内容不断在增加,如何确定增加的内容也是正确

共识算法更多是被用来同步非常重要但是数据量不大的文件。如进行云计算的时候,就需要知道机器都是哪些。这些描述信息都很重要,但是数据量不大,它们就可以存储在共识后的文件里。它可以实现全序广播线性化存储。分布式理论有一个很有用的结论是,共识能力等价于全序广播,也等价于线性化存储。因此全序广播线性化存储之间也是等价的。

全序广播(Total Order Broadcast)

  1. 所有机器的消息都不能丢失。如果一台机器上出现了某个消息,那么这个消息一定能在所有其他机器上找到。
  2. 所有机器记录的消息的顺序完全一致。

线性化存储(Linearizable Storage)

线性化存储是一个分布式的数据存储集群,保证了所有操作是可线性化的,即所有操作都可以重新排序,并在排序之后,这些操作能先后顺序执行,并且最后生成合理的结果。

Raft

  • 主从(Leader and Follower)在任何一个时间点,整个集群最多只有一个主节点,其他的都是从节点。

TBD