当两个将军证明“设计算法不可能安全地达成一致”时,像Paxos这样的共识算法如何“保证安全(免于不一致) ”?
当我考虑让两台服务器(1)可靠地交换一个号码(即,两台服务器最终都知道对方肯定收到了号码)或(2)两台服务器最终都知道交换失败并且不改变他们的状态,看起来(就像两位将军一样)消息失败总是会以一种不一致的方式发生(即,一个服务器认为另一个完成了交换,但它没有)。
那么 Paxos(或其他任何东西)如何真正保证“免于不一致”?有简单的语言解释吗?演示两台服务器进行有保证的交换或在失败时完全放弃交换的最简单的伪代码是什么?