Skip to content

Commit

Permalink
更新 max
Browse files Browse the repository at this point in the history
  • Loading branch information
isno committed Dec 6, 2024
1 parent b74651a commit 69d1faa
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
3 changes: 1 addition & 2 deletions consensus/Basic-Paxos.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

希望你没有对前篇 Paxos 的“复杂”做的铺垫所吓倒,共识问题已经算是一个古老的领域,30 余年间已经有无数简洁直白的视频、论文等资料进行过解读。网络中流传甚广的 Raft 和 Paxos 视频讲解[^1],即使没有多少技术背景,也能通俗地理解 Paxos。


## 1. Paxos 算法背景

在 Paxos 算法中,节点分为三种角色:
Expand Down Expand Up @@ -106,7 +105,7 @@ Paxos 算法的第二个阶段称“批准阶段”(Accept)。提议者向

Paxos 的价值在于推动了分布式共识算法的发展,但它有以下缺陷:只能处理单一提案,且达成共识至少需要两次网络往返,高并发情况下可能导致活锁。因此,Paxos 算法主要用于理论研究,较少直接应用于工程实践。为了应对多次提案和大规模分布式系统的需求,Lamport 在论文《Paxos Made Simple》中提出了 Paxos 的优化变体 —— Multi Paxos。Multi Paxos 引入了“选主”机制,通过多次运行 Paxos 算法来处理多个提案。

不过,Lamport 的论文主要关注的是 Paxos 的算法基础和正确性证明,对于领导者选举以及解决多轮提案的效率问题,并没有给出充分的实现细节。2014 年,斯坦福的学者 Diego Ongaro 和 John Ousterhout 发表了论文《In Search of an Understandable Consensus Algorithm》,该论文基于 Multi Paxos 思想,提出了简化和改进版的 Raft 算法。Raft 算法明确提出了“选主”、“日志复制”等概念及其实现细节。该论文斩获 USENIX ATC 2014 大会 Best Paper 荣誉,Raft 算法更是成为后来 etcd、Consul 等分布式系统的实现基础。
不过,Lamport 的论文主要关注的是 Paxos 的算法基础和正确性证明,对于领导者选举以及解决多轮提案的效率问题,并没有给出充分的实现细节。2014 年,斯坦福的学者 Diego Ongaro 和 John Ousterhout 发表了论文《In Search of an Understandable Consensus Algorithm》,该论文基于 Multi Paxos 思想,提出了“选主”、“日志复制”等概念及其实现细节,提出了简化和改进版的 Raft 算法。该论文斩获 USENIX ATC 2014 大会 Best Paper 荣誉,Raft 算法更是成为后来 etcd、Consul 等分布式系统的实现基础。


[^1]: 讲解作者是斯坦福教授 John Ousterhunt,他还指导了 Diego Ongaro 写出了 Raft 的论文。本章配图也多来源于 John Ousterhunt 所发表的内容。
Expand Down
3 changes: 2 additions & 1 deletion consensus/raft-ConfChange.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@
图 6-16 穷举奇/偶数集群下节点添加/删除情况
:::

目前,绝大多数 Raft 算法的实现或系统,如 Hashicrop Raft、Etcd 等都是使用单节点变更方案。联合共识方案由于其复杂性和落地难度笔者就不再过多介绍,有兴趣的读者可以阅读 Raft 论文了解相关内容。

目前,绝大多数 Raft 算法的实现和系统,如 HashiCorp Raft 和 etcd,均采用单节点变更方案。由于联合共识方案的复杂性和实现难度,本文不再深入讨论,有兴趣的读者可以参考 Raft 论文以了解更多细节。

0 comments on commit 69d1faa

Please sign in to comment.