(16)云计算核心算法之Paxos算法

云计算的基础技术是集群技术,支撑集群高效协同工作的需要一系列资源和任务调度算法。

这一系列调度算法中,有3种核心算法奠定了集群互连互通的基础,它们是Paxos算法,DHT算法和Gossip协议。

其中,Paxos算法解决分布式系统中信息一致性的问题。

Paxos算法要解决的问题:

Paxos算法要解决的问题是一个分布式系统如何就某个value(指令)达成一致。

为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。

Paxos算法的知识背景:

(1)分布式系统中的各个节点称为"processor"

(2)processor可以担任"proposer","accpter","learner"三个角色中的一个或多个角色。

(3)proposal = [num(编号), value],其中num是proposal的编号(按proposal被提出的顺序递增),不同proposal的num必须是不一样的,value就是需要同步的指令。

(4)proposer可以propose(提出)proposal;accepter可以accept(接受)proposal;learner可以学习被choose出来的value。

(5)choose:当一个proposal被大多数(多数派)的accepter所接受时就说这个proposal被choose,同时该proposal的value也被choose。

(6)各个processor之间的信息传递可以延迟,丢失,但是传达到的信息都是正确的。

Paxos算法的核心:

Paxos算法认为,只要满足以下三个条件就能保证数据的一致性:

(1)一个value只有在被proposer提出之后才可以被choose;

(2)每次只有一个value被choose;

(3)value只有被choose之后才能被learners所获取;

Paxos算法其实就是对条件2的不断加强。

如何保证每次只有一个value被choose(条件2)?

原文地址:https://www.cnblogs.com/paradis/p/11037295.html

时间: 2024-11-14 12:49:13

(16)云计算核心算法之Paxos算法的相关文章

Paxos算法

转载请注明出处http://www.cnblogs.com/dvd0423/p/4185697.html 浮躁的人请绕道,这篇文章不适合你. 把Paxos作为分布式系统系列的第一篇,是因为我迫不及待的想告诉别人这个算法是多么牛逼.相比于Map/Reduce架构.一致性Hash.两阶段提交等等,我觉得Paxos是一个让人第一次看到会感觉废话连篇,再仔细品味会拍手称赞的算法.Paxos算法最初由lamport提出,他第一次提出时模拟的是一个叫Paxos的希腊城邦立法的问题.由于这个算法太抽象了,所以

分布式 一致性Paxos算法(转载)

文章1比较通俗易懂,可以入门,转载地址是http://www.cnblogs.com/linbingdong/p/6253479.html Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难. 网上有很多讲解Paxos算法的文章,但是质量参差不齐.看了很多关于Paxos的资料后发现,学习Paxos最好的资料是论文<Paxos Made Simple>,其次是中.英文版维基百科对Paxos的介绍.本文试图带大家一步步揭开Paxos

Paxos算法再思考

1. 背景 在学习分布式相关知识时,很早之前就断断续续了解过Paxos算法,搜到的资料大抵如Paxos Made Simple中译版,互相转载.翻译.互相注释.在粗览版面后,发现了一些奇怪的东西,诸如“提案”.“选举”.“议员”.“决议”.心里不禁骂娘,这都是些神马玩意啊,和分布式容错有五毛钱关系?作为一个长期生活在社会主义国家的单纯码农,瞬间被这些词汇带歪了.硬着头皮往后读,发现遇到疑惑的地方又冷不丁一个“显而易见”,真真有苦无处诉. 这还算好,如果你看到其他作者拿出三国时期的五虎上将来举例,

Paxos算法小结

转自不正直的绅士,因百度空间迁移,无法注明出处,我从其google搜索引擎中的cache进行的copy. 不正直的绅士 是跟我一起工作过的非常有才的一个青年才俊. Paxos的使用非常广泛.sanlock也使用了paxos. 共研究Paxos算法的程序猿参考. Paxos算法小结 1 Paxos算法的背景1.1 State Machine Approach与一致性算法1.2 CAP理论与一致性算法2 Paxos算法2.1 Paxos算法的角色2.2 Paxos算法的描述2.3 Paxos算法的简

一步一步理解Paxos算法

一步一步理解Paxos算法 背景 Paxos 算法是Lamport于1990年提出的一种基于消息传递的一致性算法.由于算法难以理解起初并没有引起人们的重视,使Lamport在八年后重新发表到 TOCS上.即便如此paxos算法还是没有得到重视,2001年Lamport用可读性比较强的叙述性语言给出算法描述.可见Lamport对 paxos算法情有独钟.近几年paxos算法的普遍使用也证明它在分布式一致性算法中的重要地位.06年google的三篇论文初现“云”的端倪,其中的chubby锁服务使用p

分布式理论之一:Paxos算法的通俗理解

维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法. Paxos算法目前在Google的Chubby.MegaStore.Spanner等系统中得到了应用,Hadoop中的ZooKeeper也使用了Paxos算法,在上面的各个系统中,使用的算法与Lamport提出的原始Paxos并不完全一样,这个以后再慢慢分析.本博文的目的是,如何让一个小白在半

分布式一致性协议之Paxos算法

最近特别喜欢一句话:实践是最好的成长,发表是最好的记忆. 笔者在今年国庆7天没有回家,累计有6天的时间是在公司度过,要么写博客,要么看书.我记得当时写的关于分布式系统一致性的原理和实践.作者是倪超.书名<从Paxos到Zookeeper分布式一致性原理与实践>.当时就想要通过发表Paxos来跟自己做心灵的对话.可是,实在扛不下去.于是放弃. 今天又是周五,于是重新翻开已经尘封了2个礼拜的博客.再一次启程. 于是想用开头提到的两句话来勉励自己:实践是最好的成长,发表是最好的记忆.哪怕是工作再忙,

Zookeeper与paxos算法

一. zookeeper是什么 官方说辞:Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等. 好抽象,我们改变一下方式,先看看它都提供了哪些功能,然后再看看使用它的这些功能能做点什么. 二. zookeeper提供了什么 简单的说,zookeeper=文件系统+通知机制. 1. 文件系统 Zookeeper维护一个类似文件系统的数据结构: 每个子

分布式一致性算法:Raft 算法

Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现.本文对 raft 论文进行翻译,希望能有助于读者更方便地理解 raft 的思想.如果对 Paxos 算法感兴趣,可以看我的另一篇文章:分布式系列文章--Paxos算法原理与推导 摘要Raft 是用来管理复制日志(replicated log)的一致性协议.它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos 不同.这使得 Raft 比 Pax