【发布时间】:2020-04-20 10:37:50
【问题描述】:
论文说:
1.提议者选择一个新的提议号 n 并向一组接受者中的每个成员发送请求,要求其响应:
(a) 承诺不再接受编号小于 n 的提案,并且
(b) 它已经接受的小于 n 的最大数的提案,如果有的话。
我会将这样的请求称为编号为 n 的准备请求。
2.如果提议者收到大多数接受者的请求响应,那么它可以发出 > 一个编号为 n 且值为 v 的提议, 其中 v 是所有提案中编号最高的提案的值 响应,或者是提议者选择的任何值,如果响应者 报告没有提案。
我的问题是,如果提议者在响应中选择了 v,那么新的轮次将始终使用之前保存的值,我们如何更新值?
说我们有:
v=1
在所有节点中。然后客户想要更新它
v=2
每个准备阶段都会用v=1收集回复,然后用v=1提议,所以v=2永远不会被使用!
许多实现在接收客户端请求的节点上以v=2 响应,因此建议v=2。但是这种实现方式违反了规则
(b)它已经接受的小于n的最大数量的提案,如果有的话。
因为v=2从未被接受!我不能作为提案得到答复。
【问题讨论】:
-
哪张纸?有一些请用链接编辑问题。
标签: paxos