分布式技术原理与实战45讲--03 第03讲:如何透彻理解 Paxo 算法?

本课时详细讲解了Paxos算法中的Quorum机制和选举过程。Quorum机制基于抽屉原理,用于在分布式系统中平衡读写服务的可用性和一致性。Paxos算法包括Proposer、Acceptor、Learner和Client四个角色,通过准备和选举两个阶段达成一致性。在选举过程中,Proposer通过Prepare和Accept消息与Acceptor交互,确保提案的批准。Paxos算法的正确性依赖于Acceptor对ProposalID的比较和承诺。了解Paxos算法有助于更好地理解分布式一致性解决方案。
摘要由CSDN通过智能技术生成

本课时我们主要讲解“如何透彻理解 Paxos 算法”?

Paxos 算法在分布式领域具有非常重要的地位,开源分布式锁组件 Google Chubby 的作者 Mike Burrows 说过,这个世界上只有一种一致性算法,那就是 Paxos 算法,其他的算法都是残次品。

Paxos 算法虽然重要,但是也因算法复杂而著名,不过 Paxos 算法是学习分布式系统必需的一个知识点,这一课时我们就知难而上,一起来学习下 Paxos 算法。

Quorum 机制

在学习 Paxos 算法之前,我们先来看分布式系统中的 Quorum 选举算法。在各种一致性算法中都可以看到Quorum 机制的身影,主要数学思想来源于抽屉原理,用一句话解释那就是,在 N 个副本中,一次更新成功的如果有 W 个,那么我在读取数据时是要从大于 N-W 个副本中读取,这样就能至少读到一个更新的数据了。

和 Quorum 机制对应的是 WARO,也就是Write All Read one,是一种简单的副本控制协议,当 Client 请求向某副本写数据时(更新数据),只有当所有的副本都更新成功之后,这次写操作才算成功,否则视为失败。

WARO 优先保证读服务,因为所有的副本更新成功,才能视为更新成功,从而保证了

所有的副本一致,这样的话,只需要读任何一个副本上的数据即可。写服务的可用性较低,因为只要有一个副本更新失败,此次写操作就视为失败了。假设有 N 个副本,N-1 个都宕机了,剩下的那个副本仍能提供读服务;但是只要有一个副本宕机了,写服务就不会成功。

WARO 牺牲了更新服务的可用性,最大程度地增强了读服务的可用性,而 Quorum 就是在更新服务和读服务之间进行的一个折衷。

Quorum 定义

Quorum 的定义如下:假设有 N 个副本,更新操作 wi 在 W 个副本中更新成功之后,才认为此次更新操作 wi 成功,把这次成功提交的更新操作对应的数据叫做:“成功提交的数据”。对于读操作而言,至少需要读 R 个副本才能读到此次更新的数据,其中,W+R>N ,即 W 和 R 有重叠,一般,W+R=N+1。

N = 存储数据副本的数量
W = 更新成功所需的副本
R = 一次数据对象读取要访问的副

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值