11 结论
算法的设计通常会把正确性,效率或者简洁作为主要的目标 。尽管这些都是很有意义的目标,但是我们相信,可理解性也是一样的重要 。在开发者把算法应用到实际的系统中之前,这些目标没有一个会被实现,这些都会必然的偏离发表时的形式 。除非开发人员对这个算法有着很深的理解并且有着直观的感觉,否则将会对他们而言很难在实现的时候保持原有期望的特性 。
在这篇论文中,我们尝试解决分布式一致性问题,但是一个广为接受但是十分令人费解的算法 Paxos 已经困扰了无数学生和开发者很多年了 。我们创造了一种新的算法 Raft,显而易见的比 Paxos 要容易理解 。我们同时也相信,Raft 也可以为实际的实现提供坚实的基础 。把可理解性作为设计的目标改变了我们设计 Raft 的方式;随着设计的进展,我们发现自己重复使用了一些技术,比如分解问题和简化状态空间 。这些技术不仅提升了 Raft 的可理解性,同时也使我们坚信其正确性 。
【Raft一致性算法】
推荐阅读
- 编译器的自动内存管理,静态的GC算法
- 图像对比度增强算法!为什么图像的对比度不宜过大?图像对比度的基本原理是什么?
- 对数运算法则 对数运算
- 对数的运算法则及公式 对数的运算
- 算法推荐时代,“儿童邪典片”危害不可低估
- 公元纪年法的算法
- 海量数据处理的算法 海量数据处理
- 女子标准体重计算公式:三种算法都不达标,问题可能出在自己身上
- 最小公倍数怎么求算法 最小公倍数怎么求
- AI绘画野蛮生长现隐忧 是“拼接”还是算法生成?