一個分布式修改數據的一致性算法。
主要角色
決策者:是否批準修改申請。對一個資源一次只能批準一個修改申請,不能做墻頭草。
申請者:提出修改申請。
學習者:記錄被批準的修改。
主要過程
多個申請者向多個決策者提出修改申請,獲得多數派批準的申請將交給學習者進行學習。
這個民主的過程將經過兩輪表決,在第2輪表決中獲得多數派批準的申請可以被整體接受,保障數據在各個節點上的一致性。
- 申請者要決策者做第一輪表決,嘗試獲得多數派決策者的支持,同時獲得已經進入第二輪表決的修改申請內容。
- 申請者根據收集到的其他申請者的申請內容的數量,在他們的修改申請和自己的修改申請中選一個最可能通過的申請內容,發起第二輪表決。
決策者服務
決策者的工作實際和申請者,學習者之間沒有太多關系,決策者對一個修改申請無非要求以下內容:
因此決策者這個角色可以做成一個相對獨立的服務,為各種類型的申請者提供一致性支持。
另外由于多個學習者的學習可能出現不一致,所以學習編號可以由決策者這邊通過唯一數據庫遞增管理。
看過上文但又不是很懂的就不要多看幾次了。google一下能找到很多人的心得,但是中文的心得普遍不容易理解。所以推薦閱讀英文原版論文
paxos simple
posted on 2012-02-24 20:36
LOGOS 閱讀(3031)
評論(0) 編輯 收藏 引用