(四)圖解 Paxos 一致性協議(1)

1.前言?

一致的起點,難理解主要體現:為何如此設計協議以及如何證明其正確性。

2.基本概念

兩種Paxos:

(1)Single-Decree Paxos:決策單個 Value(本文只關注單 Paxos 的原理)

(2)Multi-Paxos:連續決策多個 Value,并且保證每個節點上的順序完全一致,多 Paxos 往往是同事運行多個單 Paxos 協議共同執行的結果

2.1Paxos 協議中的三種角色( 可同時扮演 )

倡議者(Proposer):提出提議(數值或者操作命令)供投票表決

接受者(Acceptor):對提議投票,提議超半被選中

學習者(Learner):無投票權,從接受者獲知哪個被選

2.2 Paxos 的特點

多個節點可提議

系統必須針對所有提案中的某個提案達成一致超過半數的接受者選中

最多確定一個提議一致

超半數節點存活且互相通信,整個系統一定能達成一致狀態,選擇確定提議

3. Paxos 實際應用過程


多個節點同時提出各自提議,從中選一個確定值,保證一致性。

五個節點分布式系統,A 提議 X 值,E 提議 Y 值,其他沒提。

Paxos-1

A 廣播提議(也發自己),網絡延遲,只A,B,C 收到了。即使 A,E 同時到達某個節點,必然有先后順序不是真正“同時”

Paxos-2

A,B,C第一次接收提議,acceptedProposal 和 acceptedValue 都空

Paxos-3

A 已收到超半數節點響應,acceptedValue 更新為 X。

Paxos-4

A,B,C 會發生 minProposal A,A 檢查發現沒有大于 1 的 minProposal 出現,此時 X 已經被選中。D,E?acceptedValue 不是 X不一致

Paxos-5

E?選擇 Proposal ID 為 2 發送 Prepare 請求,和上面不一樣了,C 已經接A ,不三心二意,告訴 E?它的選擇,E 也選A,發起 Accept 請求一致

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容