第二阶段A
- A3 没有经过Prepare(n)为什么会Accepted结果。Acceptor 不是需要 b = pb 的吗?
难道是因为pb = 0的原因。
- Accept如何确定自己的内容是被Chosen 的呢。
Accept只进行选举,不保存值,有Follower 的 Leader 来学习 Master的值。
归纳法证明
- 对于选自提议{t,v1}, m <= t < n , 明显推论不出来 v1 = v。有点强推理的过程。说的不清楚。
你怎么知道 {t, V1}节点是属于 上一轮的Bqrm的。强推。两次相邻的投票成功的Bqrm,第二次提议的最大值,一定是上一次选出来的。
反证法证明
- 也很牵强,敷衍。
证明细节
- 为什么要被多数派接受?
两个多数派之间必有交集。
- 为什么需要做一个承诺?
可以保证第二阶段A中Proposer的选择不会受到未来变化的干扰。
- 为什么第二阶段A要从返回的协议中选择一个编号最大的?
这样选出来的提议编号一定不小于已经被多数派接受的提议编号,进而可以根据假设得到该提议编号对应的值是Chosen的那个值
(?有疑问
,第二阶段B提交 只有一个Accepted{n, v} 呢,但是对应节点的却已经被更新了)。
选定和接受 Chosen 是有区别的。