一. Paxos
算法中的参与者主要分为三个角色,同时每个参与者又可兼领多个角色
- Client:产生议题者 –> 交付Proposer提出
- Proposer:提议者 –> 提出提案(提案编号和提议的value)
- Acceptor:决策者 –> 收到提案后可以决定是否accept
- Learner:最终决策学习者 –> 只能学习被批准的提案

Acceptor必须最少大于等于3个,并且必须是奇数个(保证一定产生多数胜出)
保证一致性的方法
- value只有在被Proposer提出之后才可被批准
- 在一次Paxos算法执行实例中,只会选择一个value
- Learner只可获得被批准的value
四个约束
- P1: 一个Acceptor必须accept第一次收到的提案;
- P2a:一旦一个具有value v的提案被choose,那么之后任何Acceptor再次accept的提案必须具有value v;
- P2b:一旦一个具有value v的提案被choose,那么之后任何 Proposer 提出的提案必须具有value v;
- P2c:如果一个编号为n的提案具有value v,那么存在一个多数派,要么他们中所有人都没有accept编号小于n的任何提案,要么他们已经accpet的所有编号小于n的提案中编号最大的那个提案具有value v;
Basic Paxos
分为两个阶段
prepare阶段:
- 当Porposer希望提出方案V1,首先发出prepare请求至大多数Acceptor。Prepare请求内容为序列号
<SN1>; - 当Acceptor接收到prepare请求
<SN1>时,检查自身上次回复过的prepare请求<SN2> - 如果SN2>SN1,则忽略此请求,直接结束本次批准过程
- 否则检查上次批准的accept请求(SNx,Vx),并且回复(SNx,Vx);如果之前没有进行过批准,则简单回复OK
accept批准阶段:
1a. 经过一段时间,收到一些Acceptor回复,回复可分为以下几种:
1) 回复数量满足多数派,并且所
理解分布式一致性:Paxos与Fast Paxos算法解析

本文介绍了Paxos算法的基本原理,包括算法中的角色及一致性保证,并详细阐述了Basic Paxos的两个阶段。接着,文章讨论了Fast Paxos算法,它是如何通过减少通信步骤来提高效率的,以及在Fast Paxos中引入的新概念如Quorum、Round和Any消息。Fast Paxos旨在减少一致性算法的延迟,但在高并发场景下可能面临的冲突问题。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



