提议者将无法获得足够数量(读取:法定数量)的接受响应,因此整个轮次失败。
Paxos可以容忍重复的消息,因此如果提交者没有获得多数响应,则重新发送准备或接受消息是安全的,也是最佳的。假设有一个短暂而短暂的网络问题,只有那些消息丢失了。如果它在响应上超时,然后重新发送消息,那么消息将通过,并且轮次可以成功。由于丢失了消息,这比失败并开始新一轮更有效。
的 编辑 强> 我应该注意到,正如@Rakis在评论中指出的那样,我实际上是在谈论Paxos的实际应用,而不是用于证明该方法正确性的算法的学术描述。如果一个人正在参加考试,那就坚持学术描述。如果你真的在写作 一个实现 然后超时和重发是由于瞬时消息丢失而有效处理丢失消息的方法。
的 编辑 强> 回答“回合失败”意味着通过开始新一轮回合来暂停该事实。本文未实际提及超时 Paxos变得简单 。因此,如果想要坚持算法的学术描述,那么消息丢失的确切答案是“世界停止时没有任何反应”。请注意,该报告称,只要不会发生不正确的结果,它不会及时发生任何事情。显然,任何合理的实施都不会做任何事情;它应该超时并做一些事情。这突出了这样一个事实,即算法的学术描述仅用于证明正确性;它故意不考虑如何使用该算法实际构建实际解决方案。该文件提示您可以添加负面响应等内容,以帮助构建实用的实现,而不会影响正确性。如此务实的解决方案 TREX 返回否定确认以使用该算法加速故障转移恢复。然后没有得到回应与得到否定回应不一样;因此,如果消息丢失,则该轮未失败,其结果不确定。可以安全地发送更多消息(重新发送)以确定实际结果。