Raft Refloated Do We Have Consensus?笔记
介绍
文章主要使用实验验证了raft是否如原论文所阐述的易于理解和实现。重新阐述了raft,使用OCaml实现了raft,开发了一个事件驱动的模拟器来进行测试,重现了raft原论文中的测试,并提出了几个优化。
文章主要使用实验验证了raft是否如原论文所阐述的易于理解和实现。重新阐述了raft,使用OCaml实现了raft,开发了一个事件驱动的模拟器来进行测试,重现了raft原论文中的测试,并提出了几个优化。
实际应用中,常常会有配置变更的需求,即:成员变更。手动的方式有下面两种,
但这两个方式都有明显的弊端,且任何手动的步骤都有引起错误的可能。
现在的很多应用是数据密集型的,数据是这些应用的主要挑战-数据的总量、数据的复杂度和数据变化的速度。
很多数据密集型的应用都是基于已有的数据系统提供的常用功能来构建的。例如:
共识算法(Consensus algorithms)允许一组机器作为一个一致的组工作,这个组可以在某些成员失败的情况下存活。Paxos是过去10多年最常被讨论的共识算法,但是难以理解且不便于实现。提出Raft的主要目标是可理解性。通过解耦leader选举、log复制和安全,以及减少状态空间,来增加可理解性。
这篇论文讨论的主从复制与常见的相比,非常极端和雄心勃勃,论文基于vm构建了一个os级别的主从复制系统,较为细致的讨论了主从复制的设计和实现。
GFS是由Google设计和实现的,以满足Google对数据处理快速正常的需求。GFS和先前的分布式文件系统有很多相似的目标,例如:性能、可扩展性、可靠性和可用性。然而,GFS的设计是由Google对应用负载和技术环境的关键(当前和预期的)观察驱动的,这反映了与早期文件系统设计假设的显著不同。Google重新审视传统的选择,并探索在设计领域探索了彻底不同的观点。