我已经阅读了维基页面和论文(paxos简单)中的paxos。但是,我仍然对一些细节感到困惑:
在阶段1a中,提议者是否包含其打算在接受者提案中选择的值?
在阶段1b中,接受者应该返回先前接受的值(如果有的话)。这个价值的生命周期是多少? IOW,何时被认为是被接受的,什么时候被覆盖/丢弃?
有关终身问题的一些更新。国际工会联合会在首次接受后,接受方应始终具有先前已接受的价值。它如何决定是否应该在下一个承诺(1b)阶段归还?或者什么时候决定忘记价值?
更新2以更好地与@MichealDeardeuff讨论:
我对paxos有如下理解:
通常在paxos工作流程中,接受者应始终具有先前接受的值。在回答准备请求时,它会在promise响应中发回值。并且提议者需要检查该值是否与 last 轮次中提出的值相同。如果不是,则提议者继续发送接受请求,其中包含接受者返回的值。如果是,则提议者继续发送Accept请求,其中包含要在当前轮中发送的值。
以上理解是否正确?
如果不正确,请解释原因吗?
如果它是正确的,我很困惑因为paxos协议没有明确说明。它只说明:
其中v是回复中编号最高的提案的值,如果回复未报告任何提案,则为任何值。
但是,根据我的理解,提议者需要检查并查看acceptor返回的值是否与 last 轮次中提出的相同提议者的值相同。如果是,即使承诺响应中有一个编号最高的建议值,提议者仍然可以选择它想要的任何值,就好像没有接受者返回的值。
这就是我想看看是否有任何参考来支持理解的原因。
非常感谢!