在Paxos中,Lamport简单地描述了算法的第二阶段(a)如下:
如果投标人从大多数接受方收到对其准备请求(编号n)的答复,则它向编号为n的每个接受方发送一个编号为v的建议书的接受请求,其中v为--在答复中编号最高的建议书的值,或如果答复未报告建议书,则为任何值。
发布于 2013-11-08 23:24:15
这是否意味着投标人可以在收到大多数承兑人的回复后立即发出接受请求,而不管他们的建议书号是多少?(我认为引文中强调的部分暗示了这一点,因为所有同等编号的建议都应该具有相同的价值,对吧?)
是的,投标人可以在收到大多数承兑人的回复后立即发出接受请求。返回的建议书号告诉建议者要发送哪个值来接受请求。
如果没有提案号返回,投标人可以自由选择自己的价值。但是,如果返回任何建议书编号,则投标人必须发送与最高建议书编号相关联的值。
下面是一个例子。假设提议者将Propose(4)发送给五个接收方,并接收回Ack(abc, 2)、Ack(abc, 2)和Ack(xyz, 3) --它必须发送Accept(xyz, 4)。
发布于 2013-11-08 16:15:42
在paxos中,您必须区分建议号、允诺号、接受号。
该答复包含一个建议号和一个已接受的编号。在答复中,建议书号与建议书相同,接受号是承兑人先前接受的号码。
投标人可在收到大多数承兑人的回复后立即发出接受请求。
每个建议书都有一个独特的建议书编号,并且投标人发送建议书时没有包含在其中的值。接受方将响应相同的建议编号,接受号码和价值接受在前几轮。然后,投标人选择该值,或者作为答复中编号最高的建议书的值,或者如果答复没有建议,则选择任何值。
https://stackoverflow.com/questions/19837318
复制相似问题