BaikalDB 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
BaikalDB 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache
开发语言: C/C++
操作系统: Linux
开发厂商: 百度
收录时间: 2019-11-15
提 交 者: tullyliu

BaikalDB是一个分布式可扩展的存储系统,支持PB级结构化数据的随机实时读写。

提供MySQL接口,支持常用的SELECT,UPDATE,INSERT,DELETE语法。提供各种WHERE过滤、GROUP BY聚合,HAVING过滤,ORDER BY排序等功能,用户可以组合实现各种在线OLAP需求,具备秒级别的亿级数据扫描聚合能力。另外,为了满足各种业务的检索需求,该系统内置全文检索需求,满足大部分快速检索的业务场景。

在虚拟化部署方面,该系统采用share-nothing的架构,可部署在容器中,也实现了多租户隔离,有自定义用户的身份识别和权限访问控制等功能。

BaikalDB 的主要特性如下:

  • 全自主化的容量管理,可以自动扩容和自动数据均衡,支持自动故障迁移,无单点,很容易实现云化,目前运行在Paas虚拟化平台之上。
  • 面向查询优化,支持各种二级索引,包括全文索引,支持常用的 OLAP 需求,支持层级模型。
  • 兼容 mysql 协议,对应用方提供 SQL 界面,支持高性能的Schema 加列。
  • 基于 RocksDB 实现单机存储,基于Multi Raft 协议(我们使用braft库)保障副本数据一致性,基于brpc实现节点通讯交互。
  • 支持多租户,meta 信息共享,数据存储完全隔离。

其中

  • BaikalStore 负责数据存储,用 region 组织,三个 Store 的 三个region形成一个 Raft group 实现三副本,多实例部署,Store实例宕机可以自动迁移 Region数据。
  • BaikalMeta 负责元信息管理,包括分区,容量,权限,均衡等, Raft 保障的3副本部署,Meta 宕机只影响数据无法扩容迁移,不影响数据读写。
  • BaikaDB 负责前端SQL解析,查询计划生成执行,无状态全同构多实例部署,宕机实例数不超过 qps 承载极限即可。
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

BaikalDB 的相关资讯

BaikalDB 的相关博客

BaikalDB 1.1.2 版本发布

BaikalDB 正式开启 1.1.X 版本 版本发布 https://github.com/baidu/BaikalDB/releases/tag/v1.1.2 https://gitee.com/mirror...

BaikalDB在同程艺龙的应用实践(三)

本系列文章主要介绍 BaikalDB在同程艺龙的落地实践 作者简介:王勇,同程艺龙架构师,BaikalDB Column Store Contributor,专...

BaikalDB在同程艺龙的应用实践(一)

本系列文章主要介绍 BaikalDB在同程艺龙的落地实践 作者简介:王勇,同程艺龙架构师,BaikalDB Column Store Contributor,专...

BaikalDB在同程艺龙的应用实践(二)

本系列文章主要介绍 BaikalDB在同程艺龙的落地实践 作者简介:王勇,同程艺龙架构师,BaikalDB Column Store Contributor,专...

BaikalDB技术实现内幕(二)-- 索引实现

本系列文章主要介绍HTAP数据库BaikalDB的技术实现细节。 作者介绍:黄文亮,百度商业平台研发部资深研发工程师,主要负责Bai...

BaikalDB技术实现内幕(一)-- 分布式事务实现

本系列文章主要介绍HTAP数据库BaikalDB的技术实现细节。 作者介绍:罗小兵,百度商业平台研发部高级研发工程师,主要负责Bai...

最近C++又有什么新花样?六款新上线的C++开源项目推荐

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以...

BaikalDB 的相关问答

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

评论 (15)

加载中
wdnmd 这架构 咋这么眼熟,一看是bd开源的 瞬间懂了
2019/12/15 10:34
回复
举报
tullyliu软件作者
这个架构图是个概要架构,大部分分布式存储系统都是这样的模式,有兴趣可以关注下各种分布式存储系统,包括不限于 CockRoachDB,分布式文件系统,OceaBase,F1/Spanner
06/24 11:41
回复
举报
拼凑的东西,还用c++拼凑的...跑着跑着哪泄露了都不知道... 还是tikv好,用rust的,安全性能都可以...
2019/11/20 13:27
回复
举报
那就用智能指针包裹起来
2019/11/20 22:53
回复
举报
tullyliu软件作者
百度绝大部分系统的基础语言都是C++,良好的编码规范和使用经验和测试保障才是达成系统健壮的基础要求,语言设计只是很小一部分因素
06/24 11:44
回复
举报
我丢。。。。。百度的东东???
2019/11/20 11:10
回复
举报
本来想点关注的,直到我一不小心看到了开发商。。。
2019/11/20 10:46
回复
举报
这个和TiDB有啥不一样?
2019/11/20 08:25
回复
举报
山寨TiDB吧,把TiDB用C++重写了一遍 ?
2019/11/20 10:22
回复
举报
万物起源TiDB?
2019/11/20 13:30
回复
举报
人家先开源的。。
2019/11/20 14:12
回复
举报
tullyliu软件作者
BaikalDB是2017年初立项的项目,4人团队花费8个月完成首个上线版本,并在2018年8月左右开源,没有根据时间来研判山寨性质吧。BaikalDB 的主要参考过 F1/Spanner 论文和 Impala 源码。然后BaikalDB 在2018年开源时由于内部依赖的 sql parser 没有得到负责团队的允许,综合对比了多个开源 sqlparser,最后参考了 tidb 使用的 https://github.com/cznic/ql 的 sql lex&yacc 定义文件,利用 lex&yacc 完成 sqlparser。最早开源的时候,TiDB 的 CTO 也点评过 BaikalDB 的设计,也并没有提到山寨。
06/24 12:26
回复
举报
好吧,两者确实很像
06/24 18:03
回复
举报
tullyliu软件作者
欢迎调研和了解,我们内部部署和应用的集群规模有上千节点,如果有落地需求可以联系我们深入探讨。
07/05 22:49
回复
举报
2019/11/19 18:08
回复
举报
更多评论
15 评论
252 收藏
分享
返回顶部
顶部