Colingo碎碎念

Programming language, 架构, 分布式, 微服务, iOS, Android

0%

paxos

paxos怎么读?p-a-x-o-s 或 [peksəs],后面的更好一点吧。就像设计模式一样,知道一个模式的名称才能更好和与别人沟通,交流。算法也一样,向别个介绍或和别人一起讨论的时候,用[peksəs]更好。

paxso中涉及的一些名词,每个人翻译都不一样,有的用英文表达更直观,有的用中文翻译更好理解。比如,process有人翻译为进程,有人翻译为服务器,有的人就直接说process。再比如”决议“,《Paxos Made Simple》里面就是用”value”表式,是不是想不到,这么正式的名词”议“居然就是”value”.

P1: 对于接收到的第一个议案(proposal),审核人(acceptor)必须初审通过
P2: 如果一个编号为n内容为v的议案(proposal)[用(n,v)表示],进入复审阶段,那么所有进入复审阶段的议案编号大于n的议案,它们的议案内容也为v。

这里我不太明白,为什么进入复审的议案,编号大于n的议案,为什么V是相同的?怎么能保证呢?

于是为了保证没有问题?如果要满足P2,只要满足下面的P2a,就可以。

P2a:如果议案(n,v)进入复审阶段,那么所有通过初审的编号大于n的议案的内容为v。

仍然要面对一个问题,因为审核人收到的第一个议案必须通过。如果a,b2个人发送两份不同议案给不同的审核人,因为一些原因,有人可能只收到a的,或b的,而a和b的议案不同。

P2b:如果议案(n,v)进入复审阶段,那么任何提议人提出的编号大于n的议案,议案内容为v。