天天看點

Paxos 與拜占庭将軍問題

Paxos算法:

Proposer:提案者

Acceptor: 表決者

Learner: 同步者

Paxos 算法的一緻性主要展現在以下幾點:

每個提案者在提出提案時都會首先擷取到一個具有全局唯一性的、遞增的提案編号 N, 即在整個叢集中是唯一的編号 N,然後将該編号賦予其要提出的提案。

每個表決者在 accept 某提案後,會将該提案的編号 N 記錄在本地,這樣每個表決者中儲存的已經被 accept 的提案中會存在一個編号最大的提案,其編号假設為 maxN。每個表決者僅會 accept 編号大于自己本地 maxN 的提案。

在衆多提案中最終隻能有一個提案被標明。

一旦一個提案被標明,則其它伺服器會主動同步(Learn)該提案到本地。

沒有提案被提出則不會有提案被標明。

參考:Paxos 與拜占庭将軍問題