知识卡片
Paxos两阶段选值
内容
Paxos靠Prepare和Accept两阶段、多数派确认来在非拜占庭环境下选出唯一倡议值:倡议者拿到多数接受者对高编号Prepare的响应后,必须沿用其中编号最高的已接受值而非随意赋新值,从而保证安全性。
参考来源
- 位置:《大数据日知录:架构与算法》第2章《数据复制与一致性》"2.4.4 Paxos协议"一节(源文件:_epub-src/OEBPS/text00007.html)
- 结论依据:原文明确Paxos分两阶段:"倡议者选择倡议编号n,然后向大多数(即超过半数以上)接受者发送Prepare请求",接受者响应时若曾接受过Accept请求"则将所有响应的Accept请求中倡议编号最高的倡议内容发送给倡议者";阶段二倡议者"如果在1.2阶段接受者返回了自己曾经接收的具有最高倡议编号Accept请求倡议内容,则从这些倡议内容里面选择倡议编号最高的并将其倡议值作为倡议值v"。
- 原始内容:倡议者选择倡议编号n,然后向大多数(即超过半数以上)接受者发送Prepare请求,请求中附带倡议编号n……如果接受者曾经响应过2.2阶段的Accept请求,则将所有响应的Accept请求中倡议编号最高的倡议内容发送给倡议者……如果在1.2阶段接受者返回了自己曾经接收的具有最高倡议编号Accept请求倡议内容,则从这些倡议内容里面选择倡议编号最高的并将其倡议值作为倡议值v;如果1.2阶段没有收到任何接受者的Accept请求倡议内容,则可以任意赋值给倡议值v。