我正在使用维基百科中提供的文档在集群模拟器应用程序中实现Paxos .不幸的是,它留下了几个可以解释的门,并没有提供关于关键实施问题的大量信息.目前还不清楚和不完整.
Paxos不会进入无限循环吗?我想如果一个人无法与至少一个法定数量的节点通信,就不应该发起Paxos.
什么是"它接受的最后价值"?来自提议者的任何先前提案编号是什么?在这种情况下,'实例'究竟是指什么?
在阶段1a:是否包含与准备消息达成一致的值,或者是否延迟到接受!信息?或者它确实重要?
在阶段2a:' 如果任何接受者已经接受了值,则领导者必须选择具有最大提议号N '的值.
这里有什么价值?是提案编号吗?我不相信,但这句话不清楚.
在阶段2a:'否则,提议者可以自由选择任何值'.这是什么意思?什么价值?对于提案号码?
Paxos似乎依赖于增加的N(提案号)值来运作?它是否正确?
维基百科条目不讨论节点在开始参与Paxos之前应该设置的初始值.这些是什么?
PS:我没有足够的声誉来创建'Paxos'标签(任何志愿者?)
在Multi-Paxos算法中,从接受者的角度考虑此消息流:
接收:准备(N)
回复:承诺(N,null)
接收:接受!(N,V1)
回复:已接受(N,V1)
接收:接受!(N + 1,V2)
回复:?
根据协议,接受者在这种情况下的反应应该是什么?它应该以Accepted(N + 1,V2)回复,还是应该忽略第二次接受!?
我相信这种情况可能发生在Multi-Paxos中,当第二个提议者上线并认为他是(并且始终是)领导者时,因此他发送他的接受而没有准备.或者,如果他的准备工作根本没有达到接受者.如果这种情况可能不会发生,你能解释一下原因吗?