3.3课程PPT:共识协议Paxos.pdf

3.3 共识协议 01 Paxos的提出 无论二阶段提交还是后面提出三阶段提交(三阶段提交是为解决两阶段提交协议的缺点而设计的)都 无法很好的解决分布式的一致性问题。 直到Paxos算法的提出,Paxos协议由Leslie Lamport最早在1990年提出,目前已经成为应用最广 的分布式一致性算法。 区块链与创新思维 02 节点角色 Paxos 协议中,有三类节点: 1.Proposer:提案者 Proposer 可以有多个,Proposer 提出议案(value)。所谓 value ,在工程中可以是任何操作,例如 “修改某个变量的值为某个值”、“设置当前primary 为某个节点”等等。Paxos 协议中统一将这 些操作抽象为 value。不同的 Proposer 可以提出不同的甚至矛盾的 value ,例如某个 Proposer 提 议“将变量 X 设置为 1”,另一个 Proposer 提议“将变量 X 设置为 2”,但对同一轮 Paxos 过程, 最多只有一个 value 被批准。 区块链与创新思维 03 节点角色 Paxos 协议中,有三类节点: 2. Acceptor:批准者 • Acceptor 有 N 个,Proposer 提出的 value 必须获得超过半数(N/2+1)的Acceptor 批 准后才能通过。 • Acceptor 之间完全对等独立。 区块链与创新思维 04 节点角色 Paxos 协议中,有三类节点: 3.Learner: 学习者 Learner 学习被批准的 value。所谓学习就是通过读取各个 Proposer 对 value 的选择结果,如果 某个 value 被超过半数 Proposer 通过,则 Learner 学习到了这个 value。这里类似 Quorum 议 会机制,某个 value 需要获得 W=N/2 + 1 的 Acceptor 批准,Learner 需要至少读取 N/2+1 个 Accpetor ,至多读取 N 个 Acceptor 的结果后,能学习到一个通过的 value。 Paxos中 proposer 和 acceptor 是算法的核心角色,paxos 描述的就是在一个由多个 proposer 和多个 acceptor 构成的系统中,如何让多个 acceptor 针对 proposer 提出的多种提案达成一致 的过程,而 learner 只是“学习”最终被批准的提案。 区块链与创新思维 05 约束条件 Paxos协议流程还需要满足如下约束条件: 1、Acceptor必须接受它收到的第一个提案; 2、如果一个提案的v值被大多数Acceptor接受过,那后续的所有被接受的提案中也必须包含v值(v 值可以理解为提案的内容,提案由一个或多个v和提案编号组成); 3、如果某一轮 Paxos 协议批准了某个 value ,则以后各轮 Paxos 只能批准这个value ; 每轮 Paxos 协议分为准备阶段和批准阶段,在这两个阶段 Proposer 和 Acceptor 有各自的处理流 程。 区块链与创新思维 06 约束条件 Proposer与Acceptor之间的交互主要有4类消息通信,如下图: 区块链与创新思维 07 约束条件 这4类消息对应于paxos算法的两个阶段4个过程: Phase 1准备阶段 a) proposer向网络内超过半数的acceptor发送prepare消息 b) acceptor正常情况下回复promise消息 Phase 2批准阶段 a) 在有足够多acceptor回复promise消息时,proposer发送accept消息 b) 正常情况下acceptor回复accepted消息 区块链与创新思维 08 选举过程 选举分为两个阶段,如下图所示。

文档评论(0)

1亿VIP精品文档

相关文档