专栏内容:
开源贡献:
- toadb开源库
个人主页:我的主页
管理社区:开源数据库
座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物.
国内数据库的发展如火如荼,每年的各种大会都会听到好消息,今年除了数据库本身的各种技术演进之外,华为发布了参天引擎,而且是做为数据库的一种基座形式,也就是所有数据库可以在参天引擎基础上,构建形成多主分布式架构的数据库系统,这也就是它叫引擎的目的。
本专栏就来详细聊一聊参天引擎内部架构,以及如何适配参天引擎。
cantian引擎核心代码已经基本开源,也让爱好者们跃跃欲试,今天给大家分享一下参天引擎的源码结构。
gitee地址
源代码主要在pkg/src目录下:
[senllang@hatch src]$ ll total 44 drwxr-xr-x. 2 senllang develops 4096 Dec 9 14:03 cluster -rw-r--r--. 1 senllang develops 792 Dec 9 14:03 CMakeLists.txt drwxr-xr-x. 4 senllang develops 94 Dec 9 14:03 cmd drwxr-xr-x. 4 senllang develops 56 Dec 9 14:03 cms drwxr-xr-x. 3 senllang develops 8192 Dec 9 14:03 common drwxr-xr-x. 3 senllang develops 39 Dec 9 14:03 driver drwxr-xr-x. 2 senllang develops 4096 Dec 9 14:03 gstbox drwxr-xr-x. 18 senllang develops 4096 Dec 9 14:03 kernel drwxr-xr-x. 2 senllang develops 4096 Dec 9 14:03 mec drwxr-xr-x. 2 senllang develops 4096 Dec 9 14:03 protocol drwxr-xr-x. 2 senllang develops 66 Dec 9 14:03 rc drwxr-xr-x. 3 senllang develops 4096 Dec 9 14:03 server drwxr-xr-x. 4 senllang develops 4096 Dec 9 14:03 tse drwxr-xr-x. 2 senllang develops 60 Dec 9 14:03 upgrade_check drwxr-xr-x. 4 senllang develops 52 Dec 9 14:03 utils drwxr-xr-x. 2 senllang develops 72 Dec 9 14:03 version
如上图,可以看到以模块命名的目录。
主要有几个模块:
可以做为一个单独的节点存在,如数据节点,或者协调节点等。一般做为数据节点,也就是管理数据的存储,它仅仅是管理协调的功能,实现数据和设备由CMS节点负责。
cantianlib是数据库引擎与CMS节点之间的桥梁,它会处理各种SQL执行场景下对数据的请求,以及对于事务日志的记录。
cantianLib 代码位于
./pkg/src/server/
它也是多线程架构实现,它的前端是DB agent,通过监听来自它的网络请求,比如登陆数据库,执行DDL,DML等,将它们转换为对数据的请求,再发往CMS。主要包括几个服务:
CMS是一个核心服务,主要对分布式资源,分布式锁进行调度管理,还有存储设备进行管理。整体是一个多线程的架构,通过网络与前端进行交互,响应资源的请求,并从存储文件系统中进行获取。
CMS模块的源码位于
./pkg/src/cms/cms
它的代码架构如下图所示
模块主要有三个阶段:
总得来看,参天引擎分为三大块,
当然对应的物理存储设备也算第四部分,可以对应NFS,也可以是DBstor,这部分的优化也没有开源。
非常感谢大家的支持,在浏览的同时别忘了留下您宝贵的评论,如果觉得值得鼓励,请点赞,收藏,我会更加努力!
作者邮箱:study@senllang.onaliyun.com
如有错误或者疏漏欢迎指出,互相学习。