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

这篇具有很好参考价值的文章主要介绍了【参天引擎】华为参天引擎内核架构源码架构,多线程服务,数据节点管理,多节点间元数据管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

cantian引擎源码结构

专栏内容

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

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

开源贡献

  • toadb开源库

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

前言

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

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

概述

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
如有错误或者疏漏欢迎指出,互相学习。文章来源地址https://www.toymoban.com/news/detail-775990.html

到了这里,关于【参天引擎】华为参天引擎内核架构源码架构,多线程服务,数据节点管理,多节点间元数据管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux内核源码分析 (B.2)虚拟地址空间布局架构

    Linux内核只是操作系统当中的一部分,对下管理系统所有硬件设备,对上通过系统调用向 Library Routine 或其他应用程序提供API接口。 内存管理可以通过以下三个维度进行介绍: 用户空间 相当于应用程序使用 malloc() 申请内存,通过 free() 释放内存。 malloc() / free() 是 glibc 库的内

    2024年02月09日
    浏览(70)
  • openxr runtime Monado 源码解析 源码分析:整体介绍 模块架构 模块作用 进程 线程模型 整体流程

    monado系列文章索引汇总: openxr runtime Monado 源码解析 源码分析:源码编译 准备工作说明 hello_xr解读 openxr runtime Monado 源码解析 源码分析:整体介绍 模块架构 模块作用 进程 线程模型 整体流程 openxr runtime Monado 源码解析 源码分析:CreateInstance流程(设备系统和合成器系统)C

    2024年02月11日
    浏览(83)
  • Elasticsearch Serverless:无服务器架构的搜索引擎解决方案

    随着云计算和无服务器架构的兴起,传统的应用开发方式正在经历革命性的变化。在这个变革的浪潮中,Elasticsearch Serverless崭露头角,成为构建强大搜索引擎的新选择。本文将深入探讨Elasticsearch Serverless的概念、优势,以及如何在无服务器环境中利用它构建灵活而高效的搜索

    2024年03月14日
    浏览(68)
  • 云图说丨华为云区块链引擎服务:高安全的区块链技术服务平台,轻松部署,快速上链

    摘要: 华为云区块链引擎服务以BCS自主研发区块链内核为底座,结合可信硬件,具有高安全、高性能、高可扩展、强隐私保护等特点,满足企业级和金融级的可信和协同要求。 本文分享自华为云社区《【云图说】 第251期 华为云区块链引擎服务—高安全的区块链技术服务平台

    2024年02月17日
    浏览(39)
  • Spring Cloud智慧工地源码,利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术开发,微服务架构

    智慧工地系统 充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术,以PC端,移动端,设备端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳务、设备、物料、安全、环境、能源、资料、计划、质量、视频监控等十大管理环节变得

    2024年02月05日
    浏览(56)
  • C/S架构学习之多线程实现TCP并发服务器

    并发概念: 并发是指两个或多个事件在 同一时间间隔 发生; 多线程实现TCP并发服务器的实现流程: 一、创建套接字(socket函数): 通信域选择IPV4网络协议、套接字类型选择流式; 二、填充服务器的网络信息结构体: 1.定义网络信息结构体变量; 2.求出结构体变量的内存

    2024年02月06日
    浏览(60)
  • Redis 6.5 服务端开启多线程源码

    redis支持开启多线程,只有从socket到读取缓冲区和从输出缓冲区到socket这两段过程是多线程,而命令的执行还是单线程,并且是由主线程执行 借鉴:【Redis】事件驱动框架源码分析(多线程) 下面 initThreadedIO 函数中通过 pthread_create 创建线程,其中 IOThreadMain 是线程的执行函数

    2024年02月14日
    浏览(62)
  • 【高并发网络通信架构】2.引入多线程实现多客户端连接的tcp服务端

    目录 一,往期文章 二,代码实现 关键代码 完整代码 运行效果 【高并发网络通信架构】1.Linux下实现单客户连接的tcp服务端 因为accept是阻塞等待客户端连接,当客户端连接成功后才会执行accept后面的代码,所以为实现多个客户端连接,第一步是将accept放在master循环里。 rec

    2024年02月13日
    浏览(47)
  • Qt实现简易的多线程TCP服务器(附源码)

    目录 一.UI界面的设计 二.服务器的启动 三.实现自定义的TcpServer类 1.在widget中声明自定义TcpServer类的成员变量 2.在TcpServer的构造函数中对于我们声明的m_widget进行初始化,m_widget我们用于后续的显示消息等,说白了就是主界面的更新显示等 四.实现自定义的TcpSocket类 1.TcpSocket.

    2024年04月17日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包