经典Paxos和Fast Paxos的正确性证明


13

我正在阅读Leslie Lamport 撰写“ Fast Paxos”论文,并被经典Paxos和Fast Paxos的正确性证明所困扰。

为了保持一致性,协调人在第i轮第2a阶段选择的值应该满足2 一个v2ai

CP(v,i):对于任何圆形j<i,不大于其他值v已经或可能还没有被在轮选择j


对于经典Paxos,证明(第8页)分为三种情况:k<j<ij=kj<k,其中k是最大舍入数,其中某些接受者已通过阶段1b消息向协调者报告。我无法理解第三种情况的论点:

情况j<k。我们可以归纳为假设,在接受者a_0在第k轮中投票给v时,财产CP成立。这意味着在第j轮中除v之外没有其他值可能被选择。CPa0vkvj

我的问题是:

  1. 为什么我们可以假定在接受者在第轮中对投票时拥有财产?a 0 v kCPa0vk

似乎我们正在使用数学归纳法,因此,基础,归纳假设和归纳步骤是什么?


对于Fast Paxos,将继续使用相同的参数(页18)。它说,

情况。对于任何在,并不比其他值已经或可能尚未被在第二轮选择。v V v jj<kvVvj

我的问题是:

  1. 如何获得?特别是,为什么“对于任何在 ”在这里?VvV

在我看来,情况的正确性证明(递归)取决于和。 k < j < i j = kj<kk<j<ij=k

因此,如何在不首先证明的情况下就得出情况(即,遗漏,其中包含多个值)?j = k j = k Vj<kj=kj=kV

Answers:


10

为什么我们可以假定在接受者a0在第k轮中对v投票时拥有财产CP?似乎我们正在使用数学归纳法,因此,基础,归纳假设和归纳步骤是什么?

您正在查看一个强烈的归纳实例。在简单归纳法中,您假定该属性对成立,并证明它对。在强归纳法中,您假定该属性对成立,并证明它对。Ñ = + 1 Ñ Ñ < Ñ = + 1n=mn=m+1n:n<mn=m+1

基础(我相信):。即,空回合(因为回合从1开始)。这是微不足道的,这可能就是为什么没有明确说明的原因。j=0

归纳步骤:假设;证明其中。Ç P v ; Ĵ + 1 Ĵ < n,nj:CP(v;n)CP(v;j+1)j<i

信不信由你,这只是一个证明草图。真正的证明在兼职议会文件中。(有些人认为纸是神秘的,其他人则认为它很幽默。)


如何获得?

在我看来,情况的正确性证明(递归)依赖于且。k < j < i j = kj<kk<j<ij=k

因此,如何在不首先证明的情况下就得出情况(即,缺少包含多个值的情况)?j = k j = k Vj<kj=kj=kV

这再次是强归纳法,因此情况确实依赖于和,但是通过归纳假设,即来自先前的Paxos回合。k < j j = kj<kk<jj=k


Lamport证明的一般提示。

Lamport使用分层证明的技术。例如,第7-8页上的证明的结构看起来像这样:

  • 假设 ; 证明其中。 Ç P v ; Ĵ + 1 Ĵ < n,nj:CP(v;n)CP(v;j+1)j<i
    1. 观察1
    2. 观察2
    3. 观察3
    4. k=argmax(...)
    5. 情况k = 0
    6. 情况k> 0
      • 情况k <j
      • 情况k = j
      • 情况j <k

Lamport倾向于使用另一种层次结构。他将证明一个更简单的算法,然后证明一个更复杂的算法映射到(或“扩展”)该更简单的算法。在第18页上似乎没有发生这种情况,但是需要注意。(第18页上的证明似乎是对7-8页上的证明的修改;不是对它的扩展。)

Lamport严重依赖强感应;他也倾向于根据集合而不是数字来思考。因此,您可能会得到空集,而其他集将为零或空。或在其他人可以加入的地方设置工会。

要证明异步消息传递系统的正确性,需要对系统的时间有一个无所不知的认识。例如,在第轮中考虑动作时,请记住,对于第轮而言,动作可能不是暂时发生的!。兰珀特却以过去时态陈述了这些潜在的未来事件。ij<i

Lamports系统和证明倾向于具有一个或一组变量,这些变量或变量只能沿一个方向行进。仅递增数字且仅添加到集合。这在他的证明中被广泛使用。例如,第8页兰波特显示他如何阉割的未来的能力投一票:a

...由于它在发送消息时将设置为,因此随后无法在任何小于 ...的回合中投票。rnd[a]iai

肯定是证明这些系统的大脑。

(更新):列出不变量;Lamport在开发和证明时会使用很多不变式。它们有时散布在整个样张中。有时它们仅出现在机器检查的证明中。每个不变量的原因;为什么在那儿?它如何与其他不变式相互作用?系统中的每个步骤如何保持不变?


全面披露:直到被要求回答这个问题,我才读过Fast Paxos。只看了引用的页面。我是工程师而不是数学家;我对Lamport所做的工作完全是基于正确发明和维护大规模分布式系统的需求。

我的答案在很大程度上取决于我对Lamport工作的经验。我已经阅读了兰珀特的几种协议和证明。我专业地维护基于paxos的系统;我已经编写并证明了高通量共识协议,并且再次专业地维护了基于该协议的系统(我正试图让我的公司允许我发表论文)。我与Lamport合作撰写过微不足道的论文,其中有三次与他会面(该论文尚待同行评审。)


感谢您的时间,回答以及对Lamport证明的出色评论!对于Paxos:现在,我可以了解Lamport证明的基本思想。但是,我脑海中的时间流回去:我们在第轮,有。为了证明,我们检查和,然后递归证明。即,涉及另一个,和,以及。此递归终止于ik=max()CP(v,i)k<j<ij=kCP(v,k)CP(v,k)k=max()k<j<kj=kk n ' = 0 kCP(v,k)kn=0。这样,递归在 s上。我在时间的流里将其转化为强归纳困难前进k
衡新2014年

1
@hengxin推理我的系统/证明时;随着时间的推移,我想到了它。我将从开始,并确保满足所有不变量;然后我将使用并确保满足所有不变量;等等。那使我想起添加更多的Lamport指针。= 1i=0i=1
Michael Deardeuff 2014年

对于Fast Paxos(),是归纳假设“ ”(请参阅的情况)吗?但是,在的底部,它表示必须找到一个满足的值。那么,归纳假设是否太强了?v V Ç P v Ĵ < ķ P 18 P 17 v V Ç P v P18vV,CP(v,i)j<kP18P17vVCP(v,i)
衡新2014年

最后,我开始认识到什么是不变性以及强归纳是如何工作的。再次感谢。顺便说一句,您提到Lamport tends to use another type of hierarchy. He'll prove a simpler algorithm, and then prove that a more complex algorithm maps onto (or "extends") the simpler algorithm,因此,您能举个例子或引用相关论文吗?此外,您的论文是否预印刷(商业)未分类版本?
衡新2014年

1
兰珀特在他的论文“ 如何编写证明”中解释了第一种类型,并举例说明了通过细化“拜占庭式 ”的第二。层次结构的第二种类型通常称为细化映射
Michael Deardeuff 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.