比較下OceanBase的選舉協議和Raft的選舉協議的區別


阿里技術大講堂OceanBase專場中曾有專門一場講座介紹OB自己實現的分布式選舉算法:《分布式選舉-破解數據庫高可用性難題》

 

這里簡單列一下這個選舉算法和raft論文中提到的選舉算法的區別。

如下都是以OB的立場說的:

1)OB使用的選舉算法,選舉開始點靠timer對齊,保證網絡中的參與者都是“同時”發起選舉的;而Raft是一個非同步發起的選舉,往往是先開始選舉的candidate贏得選舉;

2)OB選舉算法有一個預投票階段,可以保證根據特定業務邏輯選主;Raft無法實現特定選主;

3)OB每個選舉周期內的投票不持久化,通過實例啟動后第一個lease周期內不投票的方式,保證任何一個實例在一個lease周期內都不會重復投票;而Raft每輪的投票是持久化的;

4)OB由於選舉起始點需要靠timer對齊,因此對機房的時鍾誤差有要求;基本假設是最大偏差不超過100ms;Raft論文中明確提出其對timing無依賴;

5)OB允許有主狀態下根據指令進行改選,便於運維;

 

感覺最主要的區別就是如上幾點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM