【创新项目探索】CANTIAN引擎:打造分布式数据库存储架构

2023/10/10 18:38
阅读数 33

CANTIAN引擎介绍








CANTIAN引擎是一个能让普通的单机数据库变成具有类似Oracle RAC能力数据库的中间件。CANTIAN引擎采用了创新的存算分离架构,通过分布式缓存技术/事务MVCC机制/多主集群高可用等关键技术,使能分布式数据库,打造多读多写的分布式数据库存储架构。目前已经在openEuler社区开源。


仓库地址:https://gitee.com/openeuler/cantian


CANTIAN引擎架构








CANTIAN引擎,主要由四部分组成:


CANTIAN Connector:负责支持CANTIAN引擎作为分布式数据库的存储引擎插件,支持DDL、DML、事务等数据库功能,兼容分布式数据库的生态应用。


CMS: Cluster manager server,负责集群管理。


多读多写模块:CANTIAN引擎是基于共享存储的多写集群,各个节点在架构上对等,多读多写模块确保从任何一个节点都可以对数据库做DDL/DML/DCL等操作。任何一个节点做的修改,在满足隔离级别的要求下,其他节点都可以看到。所有计算节点共享和读写存储上同一份用户数据。


备份恢复模块:将数据库下的所有表导出成SQL语句或者表格文本,逻辑恢复时再将文本格式的逻辑数据文件导入到数据库中。


CANTIAN引擎功能








1、CANTIAN引擎是基于共享存储的多写集群,各个节点在架构上对等,从任何一个节点都可以对数据库做DDL/DML/DCL等操作。


2、作为分布式数据库的存储引擎插件,支持DDL、DML、事务等数据库功能,兼容分布式数据库的生态应用。


3、集群管理,包括集群成员状态维护、集群异常处理、仲裁等。


4、备份恢复,支将数据库下的所有表导出成SQL语句或者表格文本,逻辑恢复时再将文本格式的逻辑数据文件导入到数据库中。


应用场景








CANTIAN引擎基于共享存储,实现分布式数据库存算分离、多读多写架构创新。部署CANTIAN引擎后,性能10倍提升,无需分库分表,节点故障30秒内完成Failover,TCO降低30%+。


CANTIAN引擎主要优化








1、多读多写优化,整个多写集群通过如下集群组件把单机操作扩展到多节点集群:


  • 资源分布管理服务:管理分布式元数据信息,包括page/lock等资源在集群范围下的owner、权限、并发控制等信息;

  • 资源缓存融合模块:管理集群范围内page的并发控制,包括page读写的并发控制,全局page读写请求的处理,page owner/只读副本的管理,最新版本page在集群范围内传输和老版本的失效等操作;

  • 锁资源分布管理:管理集群范围内lock的并发控制,把spinlock, latch等锁资源扩展到整个集群;


2、集群管理,集群管理服务监控本节点资源和全局资源状态,并且节点间的集群管理服务之间通过心跳保持连接,能支持CANTIAN进程故障、节点故障、网络故障、存储链路故障、存储故障的检测与处理。


3、生态适配,CANTIAN引擎通过CANTIAN Connector和分布式数据库对接,CANTIAN Connector插件接收到MySQL SQL引擎调用存储引擎插件执行的请求,通过通信模块以及对接层逻辑将请求转到CANTIAN引擎内核,CANTIAN Connector插件与CANTIAN引擎通信模块设计为统一接口,动态可替换机制。


4、备份恢复,支将数据库下的所有表导出成SQL语句或者表格文本,逻辑恢复时再将文本格式的逻辑数据文件导入到数据库中。


后续规划








本项目已开源在openEuler社区,CANTIAN引擎会积极地支持新功能,后续规划如下:


1、双活容灾方案

2、提供MySQL日志解析接口

3、入湖工具

4、多租接口

5、DTS数据库迁移工具

6、运维工具集成


欢迎感兴趣的朋友们参与进来,代码地址:

https://gitee.com/openeuler/cantian




本文分享自微信公众号 - openEuler(openEulercommunity)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部