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

时间:2019-06-16
本文章向大家介绍(16)云计算核心算法之Paxos算法,主要包括(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