分享Paxos Made Simple的翻译

这几天在阅读并尝试翻译Paxos Made Simple,目前大概完成了一半,希望能借此跟各位爱好者讨论学习。

翻译文本在Paxos Made Simple翻译

4 个赞

你好,我也对分布式系统笔记感兴趣~ Basic Paxos 证明细节已经忘了,只记得当时粗糙看完的感受是:

  1. 利用编号定义了 proposal 之间的全序关系来解决多次冲突时的优先级问题。
  2. 在全序关系的基础上通过抽屉原理和归纳法达到了正确性。

不从证明角度而从具体例子理解正确性,我会尝试从『传染』和『阻止』这两个子问题考察,即想达成选定就不变,需要满足『一旦选定后新 proposal 的 v 是 chosen value』以及『提议能发起则编号小的提议必不可能达成共识』

1 个赞

感谢分享。总结的很到位啊 :+1:

对于Basic Paxos,也可以从另一个角度来看。它有两次多数派读写,第一次用来获取写的权限,第二次才真正来提交写的请求。第一次多数派读写的作用就是你所说的「传染」和「阻止」(当然第二次也有阻止)。就是为了保证一旦确定了值,就不能让人给嚯嚯了。

不过Basic Paxos只是告诉了分布式共识的原理,离实现确实有不小的距离啊。Raft的出现很有必要啊。

当然我只是纸上谈兵,没有什么实现的经验。

PS. 一点:翻译基本完成了,有些细节地方没有理解好,还有待完善。整体遣词造句方面也需要再修饰一下。还要把我的一些理解补充进去。

总之,整体已经粗略翻译完了。

1 个赞

是的,Basic Paxos 是针对非常理论的单值共识问题,对于连续多个值达成共识的 Multi Paxos 貌似没有统一的实现,也很少有人开源出工业版本出来,一般大家都是从 Raft 入门多值的共识问题哈哈,Raft 也有很多有意思的问题,比如 read index、leader lease、幽灵复现、prevote 等。

我也是纸上谈兵,交流愉快。(: