转载自:https://www.modb.pro/db/1794911959984443392

cantian引擎是华为开源的一款能让普通单机数据库集群具备多读多写能力的高可用组件,通过全局缓存技术/数据和事务强一致性技术/集群高可用管理等关键技术,使基于存算分离+共享存储的分布式数据库所有节点均具备可读可写能力,打造高性能、高可靠、高效率的多主数据库,降低客户数据库改造成本和周期。

源代码仓库介绍

      Cantian引擎于2023年9月在openEuler社区开源,24.03版本已正式发布,当前支持MySQL生态,具备使能数据库双节点多读多写、元数据归一、数据入湖、数据备份等能力;采用“木兰宽松许可证”(Mulan PSL V2)协议,用户可以自由复制、使用、修改、分发。主要包含2个代码仓:

  • Cantian引擎开源软件代码仓:https://gitee.com/openeuler/cantian

  • c   Connector开源软件代码仓:https://gitee.com/openeuler/cantian-connector-mysql

     

Cantian引擎软件架构介绍

      产品的整体方案如图所示黄色部分为Cantian开源代码交付的核心模块,主要部署在计算节点上,分成几个部分:

 

  • 和MySQL对接的Connector部分,这部分和MySQL在一个进程空间运行,主要作用是接受MySQL的请求,并通过IPC和Cantian进程进行通信。Cantian图中的标号①。这部分代码完全遵守MySQL的开源协议进行开源。

  • Cantian引擎,参见图中的标号③。这部分运行时包括两部分,一部分是Cantian的业务进程,另一部分是集群管理CMS进程。每个Cantian进程都会对应一个CMS进程。CMS负责监管Cantian运行状态,脑裂仲裁,Cantian故障时由CMS拉起,CMS故障时由一个看门狗拉起。为实现多写Cantian之间通过高速网络进行通信,网络通信部分参见图中标号②。

  • 访问存储客户端(内置在Cantian引擎中),主要作用是和存储通信获取数据,使用外置的共享存储即可对接。参见图中标号④。

     

       图上蓝色部分不包括在Cantian开源代码中,需要由Cantian开源的使用者,例如数据库厂商提供。

关键特性介绍

多读多写特性介绍

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

      上述为架构原理图,当前发布的版本暂时已支持2节点部署模式,后续会在社区中提供更多节点的支持能力。

集群管理

      CMS(Cluster manager server)是Cantian的集群管理服务,CMS进程监控本节点资源和全局资源状态,CMS进程之间有心跳保持连接状态;CMS主要支持Cantian进程故障、节点故障、网络故障、存储链路故障、存储故障的检测与处理。

 

备份功能

      数据备份是容灾的基础,Cantian引擎提供备份恢复功能,通过合理规划备份方式和备份频率,可以有效避免意外状况下的数据损失。当前Cantian引擎的数据备份方式分为逻辑备份和物理备份两种,逻辑备份通过MySQL引擎层导出数据库的数据进行存档,而物理备份则主要是通过Cantian引擎服务端直接拷贝数据库的数据文件。其中物理备份有全量备份和增量备份两种模式,在恢复时可以结合归档日志进行指定备份集全量恢复或指定时间点恢复(PITR恢复)。

       更多详细信息可参考Cantian项目社区文档,https://gitee.com/openeuler/cantian/tree/master/documents/24.03,包含Cantian技术白皮书、编译指南、开发指南等各类文档。

      Cantian引擎诚邀您参与共创,若在使用Cantian引擎过程中遇到任何疑问或难题,你可以通过社区ISSUE/邮件列表或此公众号联系,期待与各界伙伴共建。

 posted on 2024-11-07 14:28  xibuhaohao  阅读(64)  评论(0)    收藏  举报