比较下OceanBase的选举协议和Raft的选举协议的区别

阿里技术大讲堂OceanBase专场中曾有专门一场讲座介绍OB本身实现的分布式选举算法:《分布式选举-破解数据库高可用性难题》算法

 

这里简单列一下这个选举算法和raft论文中提到的选举算法的区别。数据库

以下都是以OB的立场说的:网络

1)OB使用的选举算法,选举开始点靠timer对齐,保证网络中的参与者都是“同时”发起选举的;而Raft是一个非同步发起的选举,每每是先开始选举的candidate赢得选举;运维

2)OB选举算法有一个预投票阶段,能够保证根据特定业务逻辑选主;Raft没法实现特定选主;分布式

3)OB每一个选举周期内的投票不持久化,经过实例启动后第一个lease周期内不投票的方式,保证任何一个实例在一个lease周期内都不会重复投票;而Raft每轮的投票是持久化的;htm

4)OB因为选举起始点须要靠timer对齐,所以对机房的时钟偏差有要求;基本假设是最大误差不超过100ms;Raft论文中明确提出其对timing无依赖;get

5)OB容许有主状态下根据指令进行改选,便于运维;同步

 

感受最主要的区别就是如上几点。it

相关文章
相关标签/搜索