数据库管理-第250期 深入浅出多主多活数据库技术- Cantian存储引擎(一)(20241009)

数据库管理250期 2024-10-09

  • 数据库管理-第250期 深入浅出多主多活数据库技术- Cantian存储引擎(一)(20241009)
    • 1 简介
    • 2 引擎构成
    • 3 引擎架构
    • 4 文件分布
    • 5 分布式MVCC
    • 6 限制/要求
    • 总结

数据库管理-第250期 深入浅出多主多活数据库技术- Cantian存储引擎(一)(20241009)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,HaloDB外聘技术顾问,OceanBase观察团成员,青学会MOP技术社区(青年数据库学习互助会)技术顾问
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

演示文稿1_01.png
之前在参天的邀请下,通过华为稼先社区在华为内部做了一个与数据库、RDMA和存算分离架构的线上演讲与讨论。时隔一段时间了,还是有必要对参天(Cantian)进行了解。

1 简介

image.png
Cantian是一个存储引擎,采用了存算分的离架构,通过分布式缓存技术、事务MVCC机制、多主集群高可用等关键技术,可以让使能普通的单机数据库,让其变得具有类似Oracle RAC的多读多写能力。Cantian引擎无需修改已有数据库的实现,可以以无侵入的方式被MySQL等数据库加载运行。Cantian引擎的多读多写需要基于共享存储来构建。任何能够提供共享存储并可以提供标准文件接口的存储系统都可以进行对接。
Cantian的主要特性:

  • 多读多写
  • 集群管理:集群成员状态维护、集群异常处理、仲裁等
  • 支持与MySQL对接:与Innodb兼容
  • 支持MySQL共享系统表
  • 支持滚动升级
  • 支持备份

Cantian于2023年8月25日华为数据存储用户精英论坛上正式开源,使用木兰开源许可协议。代码仓库:https://gitee.com/openeuler/cantian
目前Klustron数据库已发布Cantian伙伴版本。

2 引擎构成

Cantian引擎主要由五个主要部分组成:

  • CTC(Cantian Connector):负责支持Cantian引擎作为分布式数据库的存储引擎插件,支持DDL、DML、事务等数据库功能,兼容分布式数据库的生态应用。
  • CMS(Cluster Manager Service): 负责集群管理。
  • 多读多写模块:Cantian引擎是基于共享存储的多写集群,各个节点在架构上对等,多读多写模块确保从任何一个节点都可以对数据库做DDL/DML/DCL等操作。任何一个节点做的修改,在满足隔离级别的要求下,其他节点都可以看到。所有计算节点共享和读写存储上同一份用户数据。
  • 存储访问层:Cantian引擎通过共享存储提供的接口,例如标准文件接口,对数据进行读写操作,同时借助文件系统提供的锁机制进行互斥。
  • 工具:包括备份恢复工具:将数据库下的所有表导出成SQL语句或者表格文本,逻辑恢复时再将文本格式的逻辑数据文件导入到数据库中。运维管理工具:各自命令行等。

3 引擎架构

image.png
架构中黄色为Cantian核心模块,蓝色部分不包括在Cantian开源代码中,需要由Cantian开源的使用者,例如数据库厂商提供。

  • ①为和MySQL对接的Connector部分,这部分和MySQL在一个进程空间运行,主要作用是接受MySQL的请求,并通过IPC和Cantian进程进行通信。(这部分代码完全遵守MySQL的开源协议进行开源)
  • ②提供ctmgr由第三方管理Agent调用,上报到管理平台
  • ③提供ctbackup工具,语法上最大兼容extrabackup。由备份软件调度完成备份操作。
  • ④提供安装部署,容灾配置等脚本。由管理平台调用完成安装扩容容灾调度等操作。
  • ⑤提供安装容器相关指导。资源发放管理,容器化管理平台。
  • Cantian引擎,有Cantian业务进程和集群管理CMS进程组成。每个Cantian进程都会对应一个CMS进程来负责监管Cantian运行状态、脑裂仲裁以及故障拉起。当CMS故障时有watchdog拉起。多个服务器上运行的Cantian之间的高速网络通信。Cantian访问共享存储,获取数据。

image.png

image.png
Cantian的Global Cache机制和老版本的RAC类似,确定某个缓冲块的Master实例,当一个实例拥有需要访问的对应缓冲块时则可直接访问,否则需要向Master实例查询该缓冲块的位置,Master通知该缓冲块缓冲的实例将其发送给需要访问该数据的数据库实例。

关于更多架构相关内容可以查看代码仓库中的《技术白皮书》,有很详尽的介绍。

4 文件分布

image.png
在Cantian中的文件位置和Oracle RAC中类似,都是存放在共享存储中的,但是:

  • 集群中每个实例独占访问log、undo、temp等文件,只有故障恢复时,集群中的其他实例才能读取
  • 控制文件、system、users等表空间是可以在集群中并发读写的

5 分布式MVCC

image.png

  1. segment(段)管理
    根据上一节文件分布可知,每个实例拥有自己的undo表空间,即拥有自己独立的undo段管理和回收机制,一般只能进行本实例读取和修改,不进入data fusion,实例之间互不干扰。
    Cantian使用SMON线程后台是在当前实例的undo段范围内进行shrink操作。
  2. txn管理
    (xmap, xnum) xmap -> (seg_id, slot)
    事务xid随着seg_id的分离而分离,根据当前事务xid中的seg_id可以快速定位到事务所在的实例和实际实例内的segment。
    每个实例的undo下面具有独立的事务表,事务分配按照单机分配回收机制进行,事务在实例间是不能复用的。
  3. 分布式MVCC
    集群模式下一致性读场景,某个实例要查询的页面可能在其他实例,甚至正在被其他实例上的事务修改。由于实例之前的undo和事务是隔离的,当前查询无法直接在本地完成CR页面的构建,如果依靠其他实例将需要的undo页面通过DCS传输到本地,则效率太低。考虑采用传输CR页面的方式,由相关实例后台参与CR页面的构建。
    image.png
    当MVCC需要一个经过多个实例多次变更的PRE-IMAGE的时候,在Cantian引擎里构建过程相对复杂,需要通过xid确定undo对应实例信息,再通过多个实例一级级的向前传递,最终才能完成构建对应CR页面。根据前面Global Cache机制相关内容,如页面不在本地,则在owner所在实例构建CR页面。

6 限制/要求

针对本期涉及的内容,Cantian有以下一些限制或要求:

  • 目前发布的版本暂时仅支持2节点部署模式。
  • 计算节点之间需要稳定高速的通信网络以交换page、锁等资源。

总结

Cantian作为一个存储引擎,类似于Oracle RAC的ASM,实现让原来单点的数据库可以使用高性能高可靠的共享存储,以实现计算性能的横向扩展。
老规矩,知道写了些啥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558370.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

EtherCAT学习笔记

文章目录 前言一、EtherCAT介绍二、EtherCA系统组成2.1 ESC(EtherCAT从站控制器)2.2 从站控制微处理器2.3 物理层器件2.4 其它应用层器件 三、EtherCAT数据帧结构3.1 寻址方式3.2 时钟3.3 通信模式 四、状态机和通信初始化五、应用层协议六、ESC概述6.1 EtherCAT从站控制芯片6.…

02_InFluxDb

InFluxDb 初始化初始化流程 交互InFluxDbWebUI交互 数据模型行协议添加标签数据格式 数据类型空格索引 初始化 初始化流程 用户 密码 组织名称 Bucket—mysql里面的数据库概念 交互InFluxDb 暂用了8086端口.提供了 http api WebUI交互 略... 数据模型 这是mysql里面的表…

基于SSM的电脑硬件库存管理系统【附源码】

基于SSM的脑硬件库存管理系统(源码L文说明文档) 目录 4 系统设计 4.1 设计原则 4.2 功能结构设计 4.3 数据库设计 4.3.1 数据库概念设计 4.3.2 数据库物理设计 第5章 系统实现 5.1 管理员功能实现 5.1.1 硬件管理 5.1…

Java开发者测试:Junit5

Java开发者测试 实际代码编写中所用到的单元测试框架基本是Junit结合Mockito使用 Junit spring自带的单元测试框架,涵盖了大部分功能 通过Test注解即可直接生成测试用例 Test public void calTest(){Assert.assertEquals(junit.cal(1,2),3); }BeforeAll 表明在所有测试方法…

learn C++ NO.21——AVL树

简单介绍一下AVL树 AVL树是一种自平衡的二叉搜索树(Balanced Binary Search Tree, BBST),由俄罗斯数学家G. M. Adelson-Velsky和E. M. Landis在1962年发明,因此以其名字首字母命名。AVL树通过保持任何节点的两个子树的高度最大差…

笔记 | ASPICE 简介

什么是 ASPICE(Automotive SPICE) Automotive SPICE(简称 A-SPICE 或 ASPICE)是欧洲 20 多家主要汽车制造商以ISO/IEC 15504(SPICE,Software Process Improvement and Capability dEtermination&#xff0…

Java反射专题

目录 一.反射机制 1.Java Reflection 2.反射相关的主要类 3.反射的优缺点 4.反射调用优化—关闭访问检查 二.Class类 1.基本介绍 2.常用方法 3.获取Class对象的方式 4.那些类型有Class对象 三.类加载 1.介绍 2.类加载时机 3.类加载各阶段 四.获取类结构的信息 1…

基于微信小程序的网上商城+ssm论文源码调试讲解

2 系统开发环境 2.1微信开发者工具 微信开发者工具现在已经被小程序开发团队开发运行,目前微信开发者工具任然在不断的完善中,在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具,开发者工具将使用这个微信帐号的信息进行小程…

教育领域中聊天机器人和会话代理的使用分析和趋势:一项文献计量学回顾

英文标题: Analysis and Trends in the Use of Chatbots and Conversational Agents in Education: a Bibliometric Review 作者信息: Dennis Arias-Chvez, Universidad Continental, Arequipa, Per; dariascontinental.edu.pe; ORCID: ORCIDTeresa Ramos-Quispe, Universida…

网络连接失败的解决方案

文章目录 问题描述解决方案 问题描述 在公司连不上网,域名解析没问题,经检测是IP地址有问题 解决方案

.NET 一款提权工具:Sharp4PetitPotato

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

使用 YOLOv 11 模型实现实时手语检测 可同时识别多个手语手势

项目:Yolo11 - Roboflow - OpenCV 手语是聋哑人之间以及他们与外界沟通的重要工具,然而,许多不会手语的人无法与他们有效交流。这个项目的目标是通过自动检测手语手势,构建一个可以帮助聋哑人和普通人之间沟通的桥梁,…

PCL 法向量精细化处理

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 pcl::NormalEstimationOMP 2.1.2 pcl::NormalRefinement 2.1.3 visualizePointCloud 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云…

非酒精性脂肪性肝炎NASH临床赛道的百米冲刺,谁将成为胜者?

前 言 非酒精性脂肪性肝炎(NASH)是一种与肥胖、血脂异常、2型糖尿病和代谢综合征密切相关的疾病,可能会发展为肝硬化、终末期肝病甚至肝癌。据美国肝脏基金会统计数据显示,截至2023年8月,美国成年人中有5%的NASH患者…

【牛客刷题实战】BC120 争夺前五名

大家好,我是小卡皮巴拉 文章目录 目录 牛客题目: BC120 争夺前五名 题目描述 输入描述: 输出描述: 示例1 示例2 解题思路: 具体思路: 题目要点: 完整代码: 兄弟们共…

WMS 智慧仓储管理系统的可视化管理_SunWMS

【大家好,我是唐Sun,唐Sun的唐,唐Sun的Sun。一站式数智工厂解决方案服务商】 WMS 智慧仓储管理系统的可视化管理主要表现在以下几个方面: 首先是库存可视化。通过系统,仓库管理人员能够以直观的图表、图形等形式清晰地…

基于sklearn的机器学习应用平台 v2.0

基于sklearn的机器学习应用平台 v2.0 链接:https://pan.baidu.com/s/1nvHMTrtBmtPLT4oNXdw74A 提取码私信博主获取 关于作者 作者:小白熊 作者简介:精通python、matlab、c#语言,擅长机器学习,深度学习,机…

【实时计算 Flink】检查点和快照超时的诊断方法与调优策略

Flink的状态管理是一个复杂而关键的领域,涉及到作业的性能、稳定性和资源利用等多个方面。通过对状态生成机制和优化策略地深入理解与正确应用,结合实时计算Flink版提供的产品能力,可以帮您有效地优化Flink作业以应对大规模状态作业带来的挑战…

卫瓴科技,驶向「协同CRM」深水区

在卫瓴协同CRM的产品之上,能看到的不单纯是产品本身,即“提高转化率”这个单纯的指标,而更多的是在产品之中蕴含的“现代企业营销建设”的科学理念和认知。以此为基础,企业可以构建真正有价值且能长期驱动的品牌营销模型。 作者…

是德(Keysight)N9030A、N9030B PXA信号分析仪

Keysight N9030B PXA 信号分析仪是加速高要求应用创新的性能基准。 PXA 提供从优秀到卓越的测量选项,让您处于领先地位。利用高达 510 MHz 的分析带宽和优于 70 dB 的 SFDR 来分析最新信号,并通过本底噪声扩展 (NFE) 揭示以前隐藏的信号。要了解设备的真…