BRAFT 工业级 Raft 一致性算法实现开源项目

我要开发同款
匿名用户2018年03月08日
50阅读
开发技术C/C++
所属分类RPC/XMLRPC项目、Web应用开发
授权协议Apache 2.0

作品详情

BRAFT是百度开源的基于 BRPC 的Raft一致性算法和可复制状态机的工业级C++实现。最初是为了解决百度各业务线上的状态服务单点隐患,后来则帮助百度工程师独立实现支持高负载和低延迟的分布式系统。

BRAFT在百度内部被广泛用于构建高可用性系统,例如:

存储系统:Key-Value、Block、Object、File...

SQL存储:HAMySQLcluster、distributedtransactions、NewSQLsystems...

Metaservices:Variousmastermodules、Lockservices...

BRAFT有以下特点:

BRAFT是一个功能完备且经过可靠性验证的Raft实现,支持configurationchange、prevote、leadertransfer等特性。

BRAFT追求的核心目标是高性能,在实现的很多环节都进行了精细优化,比如无锁任务队列、log的批量提交和执行以及一些逻辑原地执行等;

接口简单容易理解,支持自定义扩展其中的storage,拥有比较完善的错误回调。用简单的接口实现简单的概念,BRAFT配合BRPC即使经验不丰富的工程师也可以很容易的快速构建出健壮的分布式系统。

在BRAFT中,百度主要采用了以下几点方法来提高性能:

数据流是全并发的,leader写本地磁盘和向follower复制数据是完全同步的。

尽可能的提高局部性,充分发挥不同层面的cache的作用。

尽可能隔离不同硬件的访问,通过流水线的形式提高吞吐。

尽可能的降低锁临界区大小,关键路径上采用lock-free/wait-free算法。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论