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