编辑: 思念那么浓 2019-08-28
《The Part-Time Parliament》

1 The Part-Time Parliament 兼职议会 Leslie Lamport 1.

The Problem

2 1.1. Paxos 岛21.2. 要求(Requirements)3 1.3. 假设(Assumptions)4 2. The Single-Decree Synod.4 2.1. 数学结论.5 2.2. 初级协议(The Preliminary Protocol)9 2.3. 基本协议(The Basic Protocol)11 2.4. 完整的神会协议(The Complete Synod Protocol)12 3. The Multi-Decree Parliament.14 3.1. 协议.14 3.2. 协议特性 (Properties of the Protocol)15 3.2.1 法令的顺序.15 3.2.2 关上门之后.15 3.3. 更进一步(Further Development)16 3.3.1 选择一个总统.16 3.3.2 长律簿.16 3.3.3 官员化.17 3.3.4 法律的学习.18 3.3.5 不诚实的议员和无心之过.19 3.3.6 选择新的议员.20 4. 与计算机科学的关系.21 4.1. 状态机模式 (The State Machine Approach)21 4.2. 提交协议 (Commit Protocols)22 5. 附录:神会协议一致性的证明

23 6. 翻译后记.24 《The Part-Time Parliament》

2 The Part-Time Parliament (兼职议会) Leslie Lamport 这篇论文前不久在 TOCS 编辑室的档案柜后面被发现.尽管年代久远,主要作者仍然认为它值得发表. 因为作者最近在希腊的一些小岛上做野外作业不能到达,所以请求我来准备它. 作者貌似是个只业余对计算机科学感兴趣的考古学家.这非常不幸;

尽管他描述的模糊的古代 Paxos 文明对于大多数计算机科学家不感兴趣,但它的议会系统对于怎样在异步环境中实现一个分布式计算 系统来说是个杰出的模式.Paxos 人对他们协议的一些改良貌似在系统的文献中确实找不到. 作者在第

4 节中确实简短讨论了 Paxos 议会和分布式计算的关系.计算机科学家可能会想要首先阅读 这一节.甚至在这之前,他们或许想要阅读 Lampson[1996]对这个算法向计算机科学家作的解释.这 个算法也在[1997]被De Prisco 更正式的描述过.我在第

4 节的末尾加上了古代协议和近期研究之间关 系的更进一步说明. 1. The Problem 1.1.Paxos 岛 在这个千年的早期 (公元

10 世纪初) , 爱琴海上的小岛 Paxos 是一个兴盛的商业贸易中心 (这 应该不会和爱奥尼亚的的 Paxoi 岛混淆,Poxoi 有时也被破读为 Paxos) .经济发展带来了政 治的进步. Paxos 的公民们用议会形式的政府取代了原先的神权统治. 但是对 Paxos 人来说, 做生意才是头等大事,城市职责反在其次,没有 Paxos 人愿意把他全部的时间投入到议会事 务中.所以 Paxos 的议会必须在每个议员都可能随时缺席的情况下也能工作下去. 兼职议会所面对的问题正好能对应于今天的容错式分布式系统所面对的问题: 议员对应于分 布式系统中的处理进程(processes),而议员的缺席对应于处理进程的宕机.因此 Paxos 人的 解决方法或许值得计算机科学借鉴.我这里会介绍 Paxos 议会协议的一个简短历史,接下来 会简短讨论一下其与分布式系统的相关性. Paxos 文明已毁灭于一次异族入侵,考古学家只是最近才开始发掘他们的历史.我们对于 Paxos 议会的所知因此比较零散.虽然基本协议是知道的,但对许多细节我们却一无所知, 而这正是我们感兴趣的地方,因此我将忝为推测 Paxos 人在这些具体细节上可能的做法. 《The Part-Time Parliament》

3 1.2.要求(Requirements) 议会的主要任务就是决定这片土地上的法律, 法律是由议会通过的一系列法令定义的. 一个 现代的议会可以雇佣秘书来记录它的每一个活动, 但是在 Paxos 没有一个人愿意始终呆在议 会大厅里作为一个秘书从头到尾参与每一个会议. 取而代之的是每一个议员都会维护一个律 簿(ledger) ,用来记录一系列已通过的法令,每个法令会带有一个编号.例如议员Λ (译者 注:由于古希腊字母比较难输入,原文中的希腊文姓名统一用其中的一个字母代替)的律簿 里有这样一个条目: 155:橄榄税是每吨

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
发布一个新话题