---
title: 【创新项目探索】CANTIAN引擎：打造分布式数据库存储架构-官方技术文章-鲲鹏社区
description: 本文主要向大家介绍CANTIAN引擎的概念、架构、功能、应用场景以及主要优化内容。
keywords: CANTIAN,创新项目探索,打造分布式数,据库存储架构,官方技术文章,鲲鹏社区,引擎介绍,引擎架构
url: https://www.hikunpeng.com/developer/techArticles/20231018-1?envFlag=1
section: (其他)
---

# 【创新项目探索】CANTIAN引擎：打造分布式数据库存储架构-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20231018-1?envFlag=1
描述: 本文主要向大家介绍CANTIAN引擎的概念、架构、功能、应用场景以及主要优化内容。
关键词: CANTIAN,创新项目探索,打造分布式数,据库存储架构,官方技术文章,鲲鹏社区,引擎介绍,引擎架构

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

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

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

实战经验

发表于 2023/10/10

0

## CANTIAN引擎介绍

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

仓库地址：https://gitcode.com/openeuler/cantian [了解详情](https://gitcode.com/openeuler/cantian)

## CANTIAN引擎架构

CANTIAN引擎，主要由四部分组成：

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

（2）CMS: Cluster manager server，负责集群管理。

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

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

## CANTIAN引擎功能

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

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

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

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

## 应用场景

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

## CANTIAN引擎主要优化

（1）多读多写优化，整个多写集群通过如下集群组件把单机操作扩展到多节点集群：

1）资源分布管理服务：管理分布式元数据信息，包括page/lock等资源在集群范围下的owner、权限、并发控制等信息；

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

3）锁资源分布管理：管理集群范围内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://gitcode.com/openeuler/cantian [了解详情](https://gitcode.com/openeuler/cantian)

本页内容
