授权协议: Apache 2.0
开发语言: C/C++
操作系统: 跨平台
开发厂商: 百度
收录时间: 2018-03-08
提 交 者: 王练

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

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

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

  • SQL 存储:HA MySQL cluster、distributed transactions、NewSQL systems ...

  • Meta services:Various master modules、Lock services ...

BRAFT 有以下特点:

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

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

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

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

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

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

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

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

BRAFT 的相关资讯

还没有任何资讯

BRAFT 的相关博客

契合 antd的富文本编辑器braft-editor 使用实例

import '../../../../braft-editor/dist/index.css' import React from 'react' import BraftEditor from 'braft-editor' ...

React 中使用富文本编辑器 Braft Editor ,并集成上传图片功能

Braft Editor 是基于draft-js开发的富文本编辑器,适用于 React 框架。 1. 安装 使用npm npm install braft-editor --save ...

[转载]一致性算法

RAFT PAXOS Zookeeper Atomic Broadcast Quorum Journal Manager

react antd SPA 管理后台搭建

react antd SPA 管理后台搭建 简介 学习了前端主流的框架react基于 react antd 等搭建了一套后台项目的模板Github 环境 OS: ...

BRAFT 的相关问答

还没有任何问答,马上提问

评论 (6)

加载中
谁有java版的
2018/03/19 02:23
回复
举报
蚂蚁金服开源了个类似的库 sofa-jraft
2019/11/05 16:58
回复
举报
打分: 力荐
看过etcd 关于raft的实现,感觉屌屌的.......
2018/03/09 22:05
回复
举报
打分: 推荐
厉害了
2018/03/09 14:45
回复
举报
brpc团队的另一个作品
2018/03/09 09:30
回复
举报
厉害了,raft 研究了一段时间
2018/03/09 09:26
回复
举报
更多评论
6 评论
32 收藏
分享
在线直播报名
返回顶部
顶部