分布式理论:一致性算法Paxos

Paxos算法是解决分布式一致性问题的有效算法,广泛应用于如OceanBase和Google Chubby等系统。它涉及复杂的通信和错误处理,旨在确保在节点故障和网络异常情况下仍能达成一致。算法涉及Proposer、Acceptor和Learner三个角色,通过Prepare和Accept两个阶段保证一致性。
摘要由CSDN通过智能技术生成

前言

世界上只有一种一致性算法,就是 Paxos。出自一位 Google 大神之口。Paxos 也是出名的 晦涩难懂,推理过程极其复杂。

Paxos 有点类似之前说的 2PC,3PC,但是解决了这两种算法各种硬伤。该算法在很多大厂都得到了工程实践,比如阿里的 OceanBase 的 分布式数据库,底层就是使用的 Paxos 算法。再比如 Google 的 chubby 分布式锁 也是用的这个算法。可见该算法在分布式系统中的地位,甚至于,Paxos 就是 分布式一致性 的代名词。

正文

1. Paxos算法是什么

Paxos 算法是 基于消息传递 且具有 高效容错特性 的一致性算法,目前公认的解决 分布式一致性问题 最有效的算法之一.

2. Paxos算法产生背景

2.1. 拜占庭将军问题

拜占庭是古代东罗马帝国的首都,由于地域宽广,守卫边境的多个将军(系统中的多个节点)需要通过信使来传递消息,达成某些一致的决定。但由于信使中可能存在叛徒(系统中节点出错),这些叛徒将努力向不同的将军发送不同的消息,试图会干扰一致性的达成。

2.2. Paxos算法由来

故事背景是古希腊 Paxos 岛上的多个法官在一个大厅内对一个议案进行表决,如何达成统一的结果。他们之间通过服务人员来传递纸条,但法官可能离开或进入大厅,服务人员可能偷懒去睡觉。

2.3 产生背景

在常见的 分布式系统 中,总会发生 节点宕机 或 网络异常 (包括消息的 重复丢失延迟乱序网络分区) 等情况。

Paxos 算法主要就是解决如何在一个 发生如上故障 的分布式系统中,快速正确的在集群内 对某个值达成一致,并且保证 整个系统的一致性

3. 算法详解

3.1 角色 & 提案

提案 (Proposal)

注意:提案的范围>value.后面会讲到,[提案=编号+Value].也可表示为[M,V].

以下描述中暂定: 提案=P,Value=V.

角色

  1. Proposer : Proposer 可以 提出提案 (Proposal)。
  2. Accecptor : Acceptor 可以 接受提案。一旦接受提案,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值