paxos算法的通俗解释

本文通过希腊城邦Paxos的选举情景,通俗地解释了Paxos算法。该算法旨在让分布式系统的参与者达成一致,确保系统具有容错能力。通过两阶段过程,包括意见领袖的确定和提议的投票,实现分布式一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

paxos算法的通俗解释

一、算法概述

1.1 算法目标:

让分布式系统的每个参与者达成一致,从而实现具有容错能力的分布式系统。

1.2 通俗概述

Lamport为了讲述这个算法,假想了一个叫做Paxos的希腊城邦进行选举的情景,这个选举是异步且非拜占庭模型的(消息传送速度不可预测,允许消息的丢失或者重复,但是不会出现内容损坏)。整个算法的大致过程为:

第一阶段:要先明确哪个“提议者”是意见领袖有权提出提议,“接受者”们就主要处理这个“提议者”的提议了(这样,也可以在提出提议时就尽量让意见统一,谋求尽早形成多数派)。

第二阶段:由上阶段选出的意见领袖提出提议,“接受者”反馈意见。如果多数“接受者”接受了一个提议,那么提议就通过了。

二、忽略严密性的通俗解释

2.1 明确意见领袖

每个“提议者”在第一阶段先报个号,谁的号大,谁就是意见领袖。可以想象为贿选:每个提议者先拿着钞票贿赂一圈“接受者”,谁给的钱多,第二阶段“接受者”就听谁的。即:“意见领袖”是在第一轮贿赂成功的“提议者” 。

2.2 尽早形成多数派

“提议者”不会执着于让自己的提议通过,而是执着于让提议尽快达成一致。为了实现这个目标,“提议者”在贿选的时候,若发现“接受者”已经接受过前面意见领袖的提议了,即便贿选成功,也会默默的把自己的提议改为前面意见领袖的提议。

2.3 提议者改变提案的依据

“接受者”在被“提议者”贿赂的时候,会记下贿赂的金额。所以当你贿赂“接受者”时,一旦你给的贿赂多而胜出,“接受者”会告诉你两件事情:a、前任意见领袖的提议内容(如果有的话);b、前任意见领袖当时贿赂了多少钱。

如果你是“提议者”,在贿赂的时候,“接受者1”跟你说“他见过的意见领袖的提议是方案1”,而“接受者2”跟你说“他见过的意见领袖提议是方案2”,只需要判断一下“接受者1”和“接受者2”告诉你的信息中,哪个意见领袖当时给的钱多,就把自己的提议改成那个意见领袖的提议。

2.4 先来后到很重要

在第一阶段中,一旦“接受者”已经接受了之前意见领袖的提议,那后面再来找这个“接受者”的“提议者”,即便在贿赂中胜出,也要将自己的提议改为前任意见领袖的提议,然后他会在第二阶段提出该提议。如果“接受者”之前没有接受过任何提议,那贿选胜出的“提议者”就可以提出自己的提议了。

以上内容摘编整理自GRAYLAMB在知乎发表的文章及优快云上一篇未署名的转载文章

原文地址:

https://www.zhihu.com/question/19787937/answer/107750652

http://blog.youkuaiyun.com/junerf/article/details/6281742

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值