前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Paxos算法的数学归纳法证明

Paxos算法的数学归纳法证明

作者头像
sean.liu
发布于 2022-09-07 02:28:05
发布于 2022-09-07 02:28:05
5210
举报

本文是对Paxos算法的证明,如有错误请指正。

预备知识

表面上看,Paxos像是一个Quorum算法再加上二阶段提交(2PC)。但并非是的二者相加。

相关笔记

Quorum算法学习笔记

数学归纳法

使用坐标系分析Paxos算法

证明步骤

Paxos算法需要证明,如果存在已经达成的共识,在节点的任意一个多数派中,ProposalID最大的那个决议必然存有当前共识内容

算法流程请参照Paxos算法学习笔记

数学表达

存在已达成的共识是{n0,v0},在节点的任意一个多数派中,一定存在ProposalID最大的决议**{nx,vx}**符合**nx>=n0 && vx=v0**。

为了简便,缩写为命题A

起始

当只有一个提案并达成共识时。

显然,共识的ProposalID是所有决议中最大的nx=n0 && v=v0。结论成立。

递推

需证明
  1. 假设,命题A成立。
  2. 可推理出未来无论什么时间点,命题A都会成立。
证明

假设新的提案是为{n1,v1},n1=n0+1,根据Paxos流程:

Preapre阶段

  1. Prepare阶段未得到多数派的Promise,流程终止。不会达成新的决议,命题A成立。
  2. Prepare执行成功,获得多数派的Promise。此时Proposor需从Promise中获取ProposalID最大的决议。根据命题A的结论,Proposor选择的决议{nx,nx}必然符合nx>=n0 && vx=v0

Accept阶段

由于提案内容vx=v0,提案为{n1,v0},在Accept阶段会有两种情况。

  1. proposalValuev0的Acceptor,接受了提案。共识的集合扩大。命题A成立。
  2. proposalID小于n1的Acceptor,接受了提案,proposalID变大,proposalValue还是v0。命题A成立。

综上所述,可得出结论命题A成立。

根据命题A可推断出未来达成的所有共识{n,v}必然符合n>=n0 && v==v0

可得出结论,Paxos算法成立

总结

  1. Prepare达成多数派Promise是非常关键的节点,它将会拦截所有早的提案。
  2. Accept阶段,同时会检查Prepare达成的多数派是否还存在,如果不存在,则提案失败。
  3. 多数派的存在是为了保证上述关键时间至少有一个节点会产生锁的效果,拦截失败的提案。
  4. 一旦形成共识,后续提案必须使用已达成的共识的内容,保证共识不会被改变。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年8月15日1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
分布式共识算法(Paxos、Raft)
多个参与者针对某一件事达成完全一致:一件事,一个结论。 已达成一致的结论,不可推翻。
leobhao
2022/06/28
3.7K0
分布式共识算法(Paxos、Raft)
Paxos算法学习笔记
本文Paoxs指代的是Basic Paxos。 Paxos是强一致的算法,数据写入后立即可读取,不存在延迟。
sean.liu
2022/09/07
3680
Paxos算法学习笔记
Paxos算法学习疑问记录
我想这不是因为Paxos复杂,而是因为Paxos最为简单。 1. Paxos只管达成共识,而且只达成一个。 2. Paxos不关心状态机,日志状态机等业务问题。(我想,加上日志状态机后才属于分布式一致性算法) 3. Paxos是原生多点写,不需要考虑选主。 相比之下,Mulit-Paxos,Raft等工程化的算法,都加入了某些条件和假设。所以可以认为其它算法是它的派生。
sean.liu
2022/09/07
3590
使用坐标系分析Paxos算法
建议先阅读Paxos算法学习笔记。然后将算法流程代入图中,分析算法在两个阶段中可能发生的情况。这会让你对Paxos算法有更加深刻的印象。
sean.liu
2022/09/07
3050
使用坐标系分析Paxos算法
微信PaxosStore:深入浅出Paxos算法协议
“与其预测未来,不如限制未来”,这应该是Paxos协议的核心思想。Paxos协议本身是比较简单的,如何将Paxos协议工程化,才是真正的难题。这是来自微信工程师的经验,以供参考。
用户8964349
2021/09/06
8840
结合NWR,让Paxos拥有的动态的Quorum,以及在Klein中的实践
在原生的Basic-Paxos或者Multi-Paxos中,Quorum的数量要求的是多数派,例如:一个5成员组成的Paxos集群,Prepare和Accept阶段需要获得3个Acceptor的支持。 Quorum=3的条件,在原生的Paxos中是硬性条件,在一些场景中,我们需要对提案的收敛更快,也就是希望提案能尽快的达成共识,那么我们希望尽可能的减少Quorum要求的数量。
并发笔记
2023/03/09
2820
结合NWR,让Paxos拥有的动态的Quorum,以及在Klein中的实践
Paxos算法详解
Paxos、Raft分布式一致性算法应用场景一文讲述了分布式一致性问题与分布式一致性算法的典型应用场景。作为分布式一致性代名词的Paxos算法号称是最难理解的算法。本文试图用通俗易懂的语言讲述Paxos算法。
全栈程序员站长
2022/11/18
1.7K0
Paxos算法详解
paxos如此简单?
Google Chubby的作者Mike Burrows说过这个世界上只有一种一致性算法,那就是Paxos,其他算法都是残次品。
lainzhang
2022/08/24
7560
浅谈 CAP 和 Paxos 共识算法
作者:郑勰,腾讯 CSIG 网络产品部后台开发工程师 什么是 CAP 关于 CAP 理论的背景介绍已经很多,这里不过多介绍,我们谈谈如何理解它的问题。 用通俗易懂的话解释三个名词: 一致性 如果刚刚向一个节点写入,那么之后,从另外一个节点读取的必须是刚刚写入的数据,不能是更老的数据。 可用性 如果请求一个节点,这个节点必须能够给予回复,如果节点挂掉了,那就谈不上可用性了。 分区容忍性 是否容忍网络分区,即可以允许节点和其它节点无法通信。 CAP 的意思就是说我们最多只能保证其中两个条件同时成立
腾讯技术工程官方号
2020/02/14
9930
浅谈 CAP 和 Paxos 共识算法
Paxos 为什么可以保证整体一致性?
Paxos是一个Consensus Algorithm。国内很多文章将Consensus翻译为“一致性”,从中文理解上没有什么问题,口语中,我们也会常把“共识”和“一致性”交替使用。例如,“去云南旅游达成共识了”和“去云南旅游达成一致了”,这两句表达的是同一个意思。但是在计算机的分布式环境中,这两个词略有差别。
并发笔记
2022/11/21
2510
Paxos 为什么可以保证整体一致性?
Paxos协议学习小结
一直对Paxos协议比较感兴趣,之前对这个算法 有耳闻 但只是了解皮毛,最近在学Zookeeper,趁着这股新鲜劲,就花时间研究了下Zookeeper的选举算法实现,再重新学习了Paxos算法,这篇文章算是我的学习总结吧。 Basic Paxos 协议 Paxos 协议是一个解决分布式系统中 多个节点之间就某个值(提案value)达成一致(决议)的通信协议,也就是说,每个节点 提出的提案 会 对 同一个 提案内容 达成一致(知悉 且 要commit成功)。下面简称提案ID为 ProposalID,提案内容为
用户1263954
2018/01/30
1.2K0
Paxos——分布式一致性算法
Paxos算法问世已经有将近30年的历史了,是目前公认最有效的解决分布式场景下一致性问题的算法之一,但是缺点是比较难懂,工程化比较难。本文希望能够辅以图例和通俗易懂的实例把Paxos算法讲清楚。
用户5546570
2019/06/06
1.3K0
Paxos——分布式一致性算法
Paxos 分布式必问的内容,没有之一
上文我们已经详细的阐述了共识问题并介绍了一些共识算法,其中 Paxos 算法是 Leslie Lamport 于 1990 年提出的共识算法,不幸的是采用希腊民主议会的比喻很明显失败了,Lamport 像写小说一样,把一个复杂的数学问题弄成了一篇带有考古色彩的历史小说。根据 Lamport 自己的描述[1],三个审稿者都认为该论文尽管并不重要但还有些意思,只是应该把其中所有 Paxos 相关的故事背景删掉。Lamport 对这些缺乏幽默感的人感到生气,所以他不打算对论文做任何修改。
猿天地
2020/10/26
5610
Paxos 分布式必问的内容,没有之一
从Paxos到Raft,分布式一致性算法解析
导语 | 后台服务架构经过了集中式、SOA、微服务和服务网格四个阶段,目前互联网界大都使用微服务和服务网格。服务从集中式、中心化向分布式、去中心化不断演进,服务也变得更灵活,能够自动扩缩容、快速版本迭代等。但是分布式架构也将集中式下一些问题放大,比如通信故障、请求三态(成功、失败、超时)、节点故障等,这些问题会导致一系例数据不一致的问题,也是计算机领域的老大难问题。本文将与大家一起学习分布式一致性算法,因作者水平有限,若文中有不正处,还请多多指导。文章作者:董友康,腾讯PCG研发工程师。 一、CA
腾讯云开发者
2021/03/01
5190
Paxos
Proposer提出一个提案,编号为N,此N大于这个Proposer之前提出提案编号。请求acceptor的quorum接收
宇宙之一粟
2022/05/13
3140
搞懂分布式技术2:分布式一致性协议与Paxos,Raft算法
该系列博文会告诉你什么是分布式系统,这对后端工程师来说是很重要的一门学问,我们会逐步了解常见的分布式技术、以及一些较为常见的分布式系统概念,同时也需要进一步了解zookeeper、分布式事务、分布式锁、负载均衡等技术,以便让你更完整地了解分布式技术的具体实战方法,为真正应用分布式技术做好准备。
Java技术江湖
2019/12/02
6820
分布式系统理论基础4:Paxos
本文转自:https://www.cnblogs.com/bangerlee/p/5655754.html
Java技术江湖
2019/12/03
5220
分布式最强算法之Paxos透析
上一篇:《分布式数据一致性模型有哪些?》 提到了Base理论提到了一个重要的点就是「最终一致性」 有什么方式能实现这种一致性呢?
斯文的程序
2020/04/24
1.6K0
分布式最强算法之Paxos透析
理解Paxos协议难吗?
Q3 活锁问题?两个提议者并发执行Basic Paxo出现2个执行顺序。 Q4 日志的连续性问题
早起的鸟儿有虫吃
2025/03/20
240
理解Paxos协议难吗?
想用好分布式框架,先学会Paxos算法吧
可靠与可用、共识与一致在正式开始探讨分布式环境面临的各种技术问题和解决方案之前,我们先把目光从工业界转到学术界,学习两三种具有代表性的分布式共识算法,为后续分布式环境中操作共享数据打好理论基础。
燃192
2023/04/10
3450
想用好分布式框架,先学会Paxos算法吧
相关推荐
分布式共识算法(Paxos、Raft)
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文