《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》—1.4.6小结
1.4.6 小结
Raft算法和Paxos算法在设计上存在一个较大的区别,即Raft算法的强领导人特性。Raft算法使用领导人选举作为一致性协议里必不可少的一部分,并且将尽可能多的功能集中到了领导人身上。这样就可以使得算法更加容易理解。
而在Paxos算法中,领导人选举和基本的一致性协议是正交的—领导人选举仅仅是性能优化的手段,并不是达成一致性的必要途径。但是,这样就增加了多余的机制。
上文关于Raft算法的介绍大多翻译自Raft论文,同时也融入了笔者自身对这篇论文的理解。笔者认为深入Raft算法的意义在于,Raft算法不仅仅可以作为解决分布式一致性问题的一个理论,还是下文即将展开讨论的etcd的实现基础。如果对Raft算法一无所知的话,那么理解etcd的工作原理就会变得非常困难。
从上文讨论过的那些RPC可以看出,Raft算法非常重视可实现性,照着论文就能实现一个版本出来,这与Paxos的神话故事化描述完全不同。Raft算法的论文是在2013年发表的,大家可以看到现在已经有很多种不同语言的开源实现库了。这也是Raft因为较好的可理解性而流行的一个佐证。
下面引用Raft论文最后一节的综述来总结本章的内容。
算法以正确性、高效性、简洁性作为主要的设计目标。虽然这些都是很有价值的目标,但这些目标在开发者写出一个可用的实现之前都不会达成。因此,我们相信可理解性同样重要。除非开发人员对这个算法有着很深的理解并且有着直观的感觉,否则对他们而言将很难在实现过程中保持原有期望的特性,实现过程中也必然会偏离论文发表时的形式。
参考文献
[1] Seth Gilbert, Nancy Lynch. CAP定理证明[OL]. http://www.glassbeam.com/sites/all/themes/ glassbeam/images/blog/10.1.1.67.6951.pdf.
[2] Eric Brewer. CAP twelve years later: How the "rules" have changed [OL]. http://ieeexplore.ieee.org/document/6133253/?reload=true.
[3] Nancy Lynch. CAP理论的一些观点[OL]. http://groups.csail.mit.edu/tds/papers/Gilbert/Brewer2.pdf.
[4] 维基百科.拜占庭将军问题[OL].https://zh.wikipedia.org/wiki/%E6%8B%9C%E5%8D%A0%E5%BA%AD%E5%B0%86%E5%86%9B%E9%97%AE%E9%A2%98.
[5] FLP定理[OL]. https://groups.csail.mit.edu/tds/papers/Lynch/jacm85.pdf.
[6] Brain M.OKi, Barbara Liskov. Viewstamped Replication[OL]. http://www.pmg.csail.mit.edu/papers/vr.pdf.
- 点赞
- 收藏
- 关注作者
评论(0)