2 复制状态机?一致性算法是从复制状态机的背景下提出的(参考英?文原?文引?用37) 。在这种?方法中,?一组服务器器上的状态机产?生相同状态的副本,并且在?一些机器器宕掉的情况下也可以继续运?行行 。复制状态机在分布式系统中被?用于解决很多容错的问题 。例例如,?大规模的系统中通常都有?一个集群领导者,像 GFS、HDFS 和 RAMCloud,典型应?用就是?一个独?立的的复制状态机去管理理领导选举和存储配置信息并且在领导?人宕机的情况下也要存活下来 。?比如 Chubby 和 ZooKeeper 。
复制状态机通常都是基于复制?日志实现的,如图 1 。顺序执?行行相同指令序列列导致结果?一致 。所以我们要保证?日志相同并且顺序?一致实际系统中使?用的?一致性算法通常含有以下特性:
? 安全性保证(绝对不不会返回?一个错误的结果):在?非拜占庭错误情况下,包括?网络延迟、分区、丢包、冗余和乱序等错误都可以保证正确 。
? 可?用性:集群中只要有?大多数的机器器可运?行行并且能够相互通信、和客户端通信,就可以保证可?用 。因此,?一个典型的包含 5 个节点的集群可以容忍两个节点的失败 。服务器器被停?止就认为是失败 。他们当有稳定的存储的时候可以从状态中恢复回来并重新加?入集群 。
? 不不依赖时序来保证?一致性:物理理时钟错误或者极端的消息延迟只有在最坏情况下才会导致可?用性问题 。
? 通常情况下,?一条指令可以尽可能快的在集群中?大多数节点响应?一轮远程过程调?用时完成 。?小部分?比较慢的节点不不会影响系统整体的性能 。
3 Paxos 算法的问题在过去的 10 年年?里里,Leslie Lamport 的 Paxos 算法?几乎已经成为?一致性的代名词:Paxos 是在课程教学中最经常使?用的算法,同时也是?大多数?一致性算法实现的起点 。Paxos ?首先定义了了?一个能够达成单?一决策?一致的协议,?比如单条的复制?日志项 。我们把这?一?子集叫做单决策 Paxos 。然后通过组合多个 Paxos 协议的实例例来促进?一系列列决策的达成 。Paxos 保证安全性和活性,同时也?支持集群成员关系的变更更 。Paxos 的正确性已经被证明,在通常情况下也很?高效 。
不不幸的是,Paxos 有两个明显的缺点 。第?一个缺点是 Paxos 算法特别的难以理理解 。我们假设 Paxos 的不不透明性来?自它选择单决策问题作为它的基础 。单决策 Paxos 是晦涩微妙的,它被划分成了了两种没有简单直观解释和?无法独?立理理解的情景 。因此,这导致了了很难建?立起直观的感受为什什么单决策 Paxos 算法能够?工作 。构成多决策 Paxos 增加了了很多错综复杂的规则 。我们相信,在多决策上达成?一致性的问题(?一份?日志?而不不是单?一的?日志记录)能够被分解成其他的?方式并且更更加直接和明显 。Paxos算法的第?二个问题就是它没有提供?一个?足够好的?用来构建?一个现实系统的基础 。?一个原因是还没有?一种被?广泛认同的多决策问题的算法 。Lamport 的描述基本上都是关于单决策 Paxos 的;他简要描述了了实施多决策 Paxos 的?方法,但是缺乏很多细节 。当然也有很多具体化 Paxos 的尝试,但是他们都互相不不?一样,和 Paxos 的概述也不不同 。例例如 Chubby 这样的系统实现了了?一个类似于 Paxos 的算法,但是?大多数的细节并没有被公开 。?而且,Paxos 算法的结构也不不是?十分易易于构建实践的系统;单决策分解也会产?生其他的结果 。例例如,独?立的选择?一组?日志条?目然后合并成?一个序列列化的?日志并没有带来太多的好处,仅仅增加了了不不少复杂性 。围绕着?日志来设计?一个系统是更更加简单?高效的;新?日志条?目以严格限制的顺序增添到?日志中去 。另?一个问题是,Paxos 使?用了了?一种对等的点对点的?方式作为它的核?心(尽管它最终提议了了?一种弱领导?人的?方法来优化性能) 。在只有?一个决策会被制定的简化世界中是很有意义的,但是很少有现实的系统使?用这种?方式 。如果有?一系列列的决策需要被制定,?首先选择?一个领导?人,然后让他去协调所有的决议,会更更加简单快速 。因此,实际的系统中很少有和 Paxos 相似的实践 。每?一种实现都是从 Paxos 开始研究,然后发现很多实现上的难题,再然后开发了了?一种和 Paxos 明显不不?一样的结构 。这样是?非常费时和容易易出错的,并且理理解 Paxos 的难度使得这个问题更更加糟糕 。Paxos 算法在理理论上被证明是正确可?行行的,但是现实的系统和 Paxos 差别是如此的?大,以?至于这些证明没有什什么太?大的价值 。下?面来?自 Chubby 实现?非常典型:在Paxos算法描述和实现现实系统中间有着巨?大的鸿沟 。最终的系统建?立在?一种没有经过证明的算法之上 。由于以上问题,我们认为 Paxos 算法既没有提供?一个良好的基础给实践的系统,也没有给教学很好的帮助 。基于?一致性问题在?大规模软件系统中的重要性,我们决定看看我们是否可以设计?一个拥有更更好特性的替代 Paxos 的?一致性算法 。Raft算法就是这次实验的结果 。
- 人生低谷的时候,怎么寻找出路?
- 我的世界大全 我的世界
- 网上怎样找女朋友 网上找人上哪个网站怎么寻找亲人
- 87%以上新兵拥有大专学历,低学历当兵如何寻找出路?
- 寻找尸源女 玩尸女的看法
- 超级巨星游戏下载
- 寻找那遗失的年味
- 寻找乡村的味道
- 寻找心灵的故乡
- 创业扶持项目 如何寻找创业项目
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
