比较下OceanBase的选举协议和Raft的选举协议的区别
2014-07-22 15:52
489 查看
阿里技术大讲堂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允许有主状态下根据指令进行改选,便于运维;
感觉最主要的区别就是如上几点。
这里简单列一下这个选举算法和raft论文中提到的选举算法的区别。
如下都是以OB的立场说的:
1)OB使用的选举算法,选举开始点靠timer对齐,保证网络中的参与者都是“同时”发起选举的;而Raft是一个非同步发起的选举,往往是先开始选举的candidate赢得选举;
2)OB选举算法有一个预投票阶段,可以保证根据特定业务逻辑选主;Raft无法实现特定选主;
3)OB每个选举周期内的投票不持久化,通过实例启动后第一个lease周期内不投票的方式,保证任何一个实例在一个lease周期内都不会重复投票;而Raft每轮的投票是持久化的;
4)OB由于选举起始点需要靠timer对齐,因此对机房的时钟误差有要求;基本假设是最大偏差不超过100ms;Raft论文中明确提出其对timing无依赖;
5)OB允许有主状态下根据指令进行改选,便于运维;
感觉最主要的区别就是如上几点。
相关文章推荐
- Raft协议实战之Redis Sentinel的选举Leader源码解析
- 以raft协议为基础的模拟zoomkeep选举唯一主机实现
- Leader选举算法( Raft 协议)
- Raft协议实战之Redis Sentinel的选举Leader源码解析
- TCP协议与UDP协议的区别,个人认为比较容易懂
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)zz
- SIP能否成为主流? 三种IP电话协议比较
- CMPP和SMPP协议比较
- 数据广播中 OC与DC的比较与区别
- 【李昱成】五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- 比较主要浏览器的一些行为特征,IE7,IE6和Firefox 2的一些区别
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?
- 数据广播中 OC与DC的比较与区别
- 设计模式:Abstract Factory和Builder(比较区别,个人认为讲得很明白)
- include 指令与 include动作的区别和比较
- CMPP和SMPP协议比较
- escape、encodeURI、encodeURIComponent等方法的区别比较
- 五种开源协议的比较
- [导入]C#中对象相等性比较方法的区别
- 比较ADO与ODBC的区别