OceanBase 存储层代码解读(一)引言
OceanBase 是一个金融级分布式关系数据库,在经过多年的双十一大促和大规模商用场景的考验后,于 2021 年 6 月份正式 开放源代码。
开源范围包含数据库内核、分布式组件和接口驱动,并提供完整的 SQL 引擎、事务引擎和存储引擎,支持多副本、分布式事务、高性能、扩展能力、故障恢复、优化器、多活容灾、语法兼容等核心技术,共有 300 万行的核心代码。
为了帮助大家更好的理解 OceanBase 开源代码存储层的实现,OBKV 团队计划推出一系列的博文,做一个存储层源码解读的专栏,同时也基于这样的一个渠道,和大家更畅快的交流讨论数据库存储技术。
专栏作者介绍
我们是 OBKV 开发团队,由锡林、颂乐、公祺、力虾、飞驰等小伙伴组成,我们的技术栈主要包括多模型数据库、分布式存储、数据库高可用技术、后端服务器开发等方面。OBKV 是基于 OceanBase 构建的分布式 NOSQL 数据库,OBKV 的代码后续也会慢慢开源出去。
你能获得什么
通过本系列的存储层源码解读文章,您可以了解到 OceanBase 存储层的具体代码实现、背后的设计思路,以及深层的思考,这对您学习其他数据库也有帮助。
其次,在熟悉了 OceanBase 存储层代码之后,如果有需要,您可以直接在未来的工作中使用我们的代码,或者为 OceanBase 贡献您的代码。
系列内容提要
本系列的内容主要集中在 OceanBase 存储层的代码解读,主要包括如下几篇文章:
1.微块的存储格式:微块编码格式代码解读。
2.宏块的存储格式:宏块在存储层的作用和编码格式。
3.SSTable 的存储格式:SSTable 的组织形式,以及和分区的关系。
4.宏块的回收原理:SSTable 中不再使用的宏块是怎么回收的。
5.Dag 调度器原理:有向无环图任务调度模型。
6.Compaction 的实现:包括各级 SSTable 的转储、合并的实现。
7.Redo log 的实现原理:Redo log 的作用及实现。
8.其他相关内容。
写在最后
如果您对我们的文章任何建议或反馈,欢迎提出来帮助我们改善。我们的邮箱是 open_docs@oceanbase.com,欢迎来撩。
如果您有什么特别想了解的,也请告诉我们。
我们可能会在下期翻牌子噢~~
当然阅读本系列文章和直接阅读源码的体感还是不一样的。
本系列文章旨在帮助您更好地理解源码,但是却不能代替源码。如果想深入学习 OceanBase,欢迎阅读源码和参与贡献,OceanBase 社区在大门永远向爱好者敞开。
最后的最后:
如果大家有任何疑问,可以通过以下方式与我们进行交流:
测试遇到问题?企业用户想享受技术顾问的免费一对一咨询服务?
快加入 OB 创计划→
https://open.oceanbase.com/articles/8000125?sou0c001
钉钉群:33254054
今日之星,明日之星都不如你留下的星星(⭐️️)
我们想让 Github 上优质的开源项目被更多人看到。
文档都是我们精心整理。如果有帮助的话求个 star(◕ᴗ◕✿),鼓励鼓励我们哟!
也欢迎大家给我们提 issue,请点击 这里。运营小姐姐在此跪谢️️ ❥(^_-)
欢迎大家一起参与社区贡献,指南请参考看 这里
社区答疑:请点击 这里
版权声明: 本文为 InfoQ 作者【OceanBase 开源社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/0a0e0b631b610c245784c27ea】。未经作者许可,禁止转载。
评论