ZAB與Paxos的聯繫和區別

共同點:

  1. 都存在一個類似於Leader進程的角色,由其負責協調多個Follower進程的運行。
  2. Leader進程都會等待超過半數的Follower做出正確的反饋後,纔會將一個提議進行提交。
  3. 在ZAB協議中,每個Proposal中都包含了一個epoch值,用來代表當前的Leader週期,在Paxos算法中,同樣存在這樣的一個標識,名字爲Ballot。

區別:

  1. Paxos算法中,新選舉產生的主進程會進行兩個階段的工作,第一階段稱爲讀階段,新的主進程和其他進程通信來收集主進程提出的提議,並將它們提交。第二階段稱爲寫階段,當前主進程開始提出自己的提議。
  2. ZAB協議在Paxos基礎上添加了同步階段,此時,新的Leader會確保存在過半的Follower已經提交了之前的Leader週期中的所有事務Proposal。
  3. ZAB協議主要用於構建一個高可用的分佈式數據主備系統,而Paxos算法則用於構建一個分佈式的一致性狀態機系統。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章