【参天引擎】华为参天引擎内核架构源码架构,多线程服务,数据节点管理,多节点间元数据管理

news2024/11/25 10:24:06

cantian引擎源码结构

专栏内容

  • 参天引擎内核架构
    本专栏一起来聊聊参天引擎内核架构,以及如何实现多机的数据库节点的多读多写,与传统主备,MPP的区别,技术难点的分析,数据元数据同步,多主节点的情况下对故障容灾的支持。

  • 手写数据库toadb
    本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。
    本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学习。

开源贡献

  • toadb开源库

个人主页:我的主页
管理社区:开源数据库
座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物.

文章目录

  • cantian引擎源码结构
  • 前言
  • 概述
  • 源码地址
  • 源码目录结构
  • 主要模块介绍
    • cantianLib
      • 源码目录
      • 系统架构
    • CMS模块
      • 源码目录
      • 系统架构
  • 总结
  • 结尾

前言

国内数据库的发展如火如荼,每年的各种大会都会听到好消息,今年除了数据库本身的各种技术演进之外,华为发布了参天引擎,而且是做为数据库的一种基座形式,也就是所有数据库可以在参天引擎基础上,构建形成多主分布式架构的数据库系统,这也就是它叫引擎的目的。

本专栏就来详细聊一聊参天引擎内部架构,以及如何适配参天引擎。

概述

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

如上图,可以看到以模块命名的目录。

主要模块介绍

主要有几个模块:

cantianLib

可以做为一个单独的节点存在,如数据节点,或者协调节点等。一般做为数据节点,也就是管理数据的存储,它仅仅是管理协调的功能,实现数据和设备由CMS节点负责。

cantianlib是数据库引擎与CMS节点之间的桥梁,它会处理各种SQL执行场景下对数据的请求,以及对于事务日志的记录。

源码目录

cantianLib 代码位于
./pkg/src/server/

系统架构

在这里插入图片描述

它也是多线程架构实现,它的前端是DB agent,通过监听来自它的网络请求,比如登陆数据库,执行DDL,DML等,将它们转换为对数据的请求,再发往CMS。主要包括几个服务:

  • kernel服务,主要用于数据和锁的请求处理,并且负责buffer管理,catalog元数据管理等;
  • DB后台服务,主要处理来自于DB agent的请求,将SQL场景转换为数据请求;通过将session绑定到线程服务中,可以处理数据并发访问;

CMS模块

CMS是一个核心服务,主要对分布式资源,分布式锁进行调度管理,还有存储设备进行管理。整体是一个多线程的架构,通过网络与前端进行交互,响应资源的请求,并从存储文件系统中进行获取。

源码目录

CMS模块的源码位于
./pkg/src/cms/cms

系统架构

它的代码架构如下图所示
在这里插入图片描述

模块主要有三个阶段:

  • 初始化;包括配置加载和初始化,各服务的初始化,以及服务线程的启动,设备和网络的启动;
  • 运行阶段;主要处理来自message的事件,对消息进行处理响应;这里要主要不同资源,锁的请求分配;
  • 退出;在cms退出时,清理和落盘数据;

总结

总得来看,参天引擎分为三大块,

  • 一是数据库计算结合的agent,这里并没有看到开源,它主要是在数据库计算时,需要的数据,向数据节点申请释放;
  • 二是cantianLib,也就是数据节点,这部分维护数据库相关的数据,如数据的缓存,数据库的元数据等,在多节点间进行同步,还有一些多节点需要协调的业务,如备份,checkpoint,事务提交等;
  • 第三部分是CMS,也就是物理存储部分,将数据时行分散到存储设备,管理数据分布,在请求数据时可以从物理设备读写数据;

当然对应的物理存储设备也算第四部分,可以对应NFS,也可以是DBstor,这部分的优化也没有开源。

结尾

非常感谢大家的支持,在浏览的同时别忘了留下您宝贵的评论,如果觉得值得鼓励,请点赞,收藏,我会更加努力!

作者邮箱:study@senllang.onaliyun.com
如有错误或者疏漏欢迎指出,互相学习。

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

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

相关文章

极智AI | 算子融合、矩阵分块 一图看懂大模型优化技术FlashAttention

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 算子融合、矩阵分块 一图看懂大模型优化技术FlashAttention。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq 没错…

RabbitMQ入门指南(二):架构和管理控制台的使用

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、RabbitMQ架构 二、RabbitMQ管理控制台的使用 1.Exchange交换机 2.Queue队列 3.绑定Exchange交换机和Queue队列 4.发送消息 5.数据隔离 总结 前言 RabbitMQ是一个高效、可靠的开源消息队列系统…

HTML_CSS的基本选择器的使用及其作用范围和优先级

目录 ✨CSS的使用:行内样式内部样式外部样式 ✨CSS基本选择器:id选择器class选择器标签选择器 ✨优先级:选择器的优先级样式表的优先级 ✨CSS的使用: 根据定义CSS的位置不同,分为行内样式、内部样式和外部样式 行内样…

java配置+J_IDEA配置+git配置+maven配置+基本语句

当前目录文件夹dir 进入文件夹cd 返回上一级cd.. 创建文件夹:mkdir 文件名删除文件夹:rd 文件夹名, 目录不为空不能直接删 rd /s 带子文件夹一起删 清屏cls 切换d盘才能进入 下载git地址: Git - Downloading Package (g…

隐私计算介绍

这里只对隐私计算做一些概念性的浅显介绍,作为入门了解即可 目录 隐私计算概述隐私计算概念隐私计算背景国外各个国家和地区纷纷出台了围绕数据使用和保护的公共政策国内近年来也出台了数据安全、隐私和使用相关的政策法规 隐私计算技术发展 隐私计算技术安全多方计…

JDBC 数据库连接池

目录 一、什么是数据库连接池二、为什么需要数据库连接池?三、JDBC 数据库连接池的实现四、C3P0的使用1、加入c3p0 jar包2、配置xml文件3、c3p0-config.xml模板4、C3P0的使用 五、Druid的使用1、加入Druid jar包2、定义配置文件:3、Druid连接池的使用 六、HikariCP的…

【最新】2023年30米分辨率土地利用遥感监测数据

改革开放以来,中国经济的快速发展对土地利用模式产生了深刻的影响。同时,中国又具有复杂的自然环境背景和广阔的陆地面积,其土地利用变化不仅对国家发展,也对全球环境变化产生了深刻的影响。为了恢复和重建我国土地利用变化的现代…

硬件基础-二极管

3.二极管 正偏时是多数载流子载流导电,反偏时是少数载流子载流导电。所以,正偏电流大,反偏电流小,PN 结显示出单向电性。多数载流子正向通过 PN 结时就需要克服内电场的作用,需要约 0.7 伏的外加电压,这是…

windows10录屏快捷键,让你效率翻倍!

“大家知道,windows 10系统有录屏快捷键吗?每次都要通过搜索才能打开,感觉花费的时间太多了,要是可以快速打开就方便多了,所以有人知道windows10系统的录屏快捷键是什么吗?” 在windows 10系统中&#xff…

OpenCV-8RGB和BGR颜色空间

一. RGB和BGR 最常见的色彩空间就是RGB,人眼也是基于RGB的色彩空间去分辨颜色。 OpenCV默认使用的是BGR. BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同。 二.HSV, HSL和YUV 1.HSV(HSB) OpenCV用的最多的色彩空间是HSV. Hue:色相&…

【玩转 TableAgent 数据智能分析】股票交易数据分析+预测

文章目录 一、什么是TableAgent二、TableAgent 的特点三、实践前言四、实践准备4.1 打开官网4.2 注册账号4.3 界面介绍4.4 数据准备 五、确认分析需求六、TableAgent体验七、分析结果解读八、总结&展望 一、什么是TableAgent TableAgent是一款面向企业用户的智能数据分析工…

Pytorch深度强化学习案例:基于Q-Learning的机器人走迷宫

目录 0 专栏介绍1 Q-Learning算法原理2 强化学习基本框架3 机器人走迷宫算法3.1 迷宫环境3.2 状态、动作和奖励3.3 Q-Learning算法实现3.4 完成训练 4 算法分析4.1 Q-Table4.2 奖励曲线 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见…

AntDB-T提升查询性能的关键之查询优化解析

查询优化器是提升查询效率非常重要的手段,本文将主要介绍AntDB-T数据库查询优化的相关设计。AntDB-T数据库是一款企业级通用分布式关系型数据库,而查询是AntDB-T数据库管理系统中最关键、最吸引人的功能之一。每个生产数据库系统每天都需要处理大量的查询…

python【matplotlib】鼠标拖动滚动缩放坐标范围和拖动图例共存

背景 根据前面的博文: python【matplotlib】画图鼠标缩放拖动动态改变坐标轴范围 和Python【Matplotlib】图例可拖动改变位置 两个博文,博主考虑了一下,如何将两者的功能结合起来,让二者共存。 只需根据Python【Matplotlib】鼠标…

【音视频 | AAC】AAC音频编码详解

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

【GD32307E-START】06 ST7735 SPI-LCD显示模块移植

软硬件平台 GD32F307E-START Board开发板GCC Makefile1.8寸TFTLCD 分辨率128*160 驱动IC ST7735S 接口定义 序号引脚标号说明1GND接地2VCC5V/3.3V电源输入3SCKSPI总线时钟信号4SDASPI总线写数据信号5RESET液晶屏复位信号,低电平复位6DC液晶屏寄存器/数据选择信…

LinuxCNC系统安装

首先我们需要准备一个U盘来安装系统,然后进入Debian官网。操作系统处,点击“下载Debian”。 如果需要下载其他比较全版本,可以点击“其他下载链接”,选择DVD的安装,因为是国外的网站,最好不要选择网络安装。…

【每日OJ—有效的括号(栈)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 1、有效的括号题目: 1.1方法讲解: 1.2代码实现: 总结 前言 世上有两种耀眼的光芒,一种是正在升起的太阳&#…

机器学习:增强式学习Reinforcement learning

收集有标签数据比较困难的时候同时也不知道什么答案是比较好的时候可以考虑使用强化学习通过互动,机器可以自己知道什么结果是好的,什么结果是坏的 Outline 什么是RL Action就是一个functionEnvironment就是告诉这个Action是好的还是坏的 例子 Space i…

2023年度IT168技术卓越奖名单:亚信安慧AntDB数据库

信创卓越贡献奖:湖南亚信安慧科技有限公司 一句话点评:亚信安慧的核心交易数据库AntDB具有应用时间久(15年)、运行节点多(2000)、数据规模大(PB级)、产品稳定可靠(500项目…