南大通用GBase 8c 多模多态分布式数据库系列一之基本介绍、核心技术、架构演进

news2025/2/13 12:45:57


前言

   随着传统的关系型SQL数据库(Oracle,MySQL,PostgreSQL等)难以满足日益增长的高数据量、快速数据处理要求、高数据库安全及强容灾能力要求(RPO,RTO)等挑战,尽管NoSQL非关系型数据库以非结构化、数据格式灵活、无通用SQL语言、使用API、支持PB级存储等优势而一跃而上。  但NewSQL(Gbase等)数据库的出现,使得数据库使用者更需要去熟悉这种SQL+NoSQL特性兼具,查询效率高,保留了对SQL数据库的支持以及SQL语句的使用,支持ACID和数据一致性,实行MPP大规模并行处理的数据库。

  写这篇文章的目的是记录并分享学习国产分布式数据Gbase的心得体会,欢迎感兴趣的伙伴一起交流,不足和错误之处敬请批评指正,文章会保持修改更新。


感谢

  感谢南大通用提供的《GBase 8c多摸多态分布式数据库认证课程》及课件PPT,有进一步了解的伙伴,请自行前往官网天津南大通用数据技术股份有限公司|GBASE了解,并去报名培训所感兴趣的产品和知识。

一、基本介绍

  GBase 8C是基于openGauss构建的一款多模多态的分布式数据库。支持行存、列存、内存等多种存储方式(多模:多种存储模式)和单机、主备式、分布式等多种部署形态(多态:多种部署形态)。

  具备高性能、高可用、弹性伸缩、高安全性等特性,可部署在物理机、虚拟机、容器、云服务,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。

  支持标准SQL语法,兼容PostgreSQL和Oracle语法。

  支持国产主流芯片、服务器、操作系统、中间件产品、服务完全本地化。

1. OLTP和OLAP

区别

OLAPOnline Analytical Processing)

OLTPOnline Transaction Processing)

名称

联机分析处理

联机事务处理

定义

是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易数据操纵要求响应时间快

功能

专门为支持复杂的分析操作而设计的用于分析数据。

业务处理为主,主要用事务更新

响应要求

求系统的响应时间合理。

响应时间要求非常高

面向人群

面向决策人员、高级管理人员

面向操作人员、底层管理人员

并发数

并发连接数大

并发连接数

多纬操作

钻取切片切块上卷旋转

2.GBase 8c名词概念

名次       角色功能配置方式备注
GHA Server高可用(High availability)管理器       管理各整个集群各节点的高可用状态。    主备高可用架构,主备之间可以配置同步或异步方式读取各节点的高可用状态。GHA和DCS合起来完成一个高可用功能。
DCS/HA Center集群状态管理器       存储各节点的高可用状态,负责在故障情况下判断集群各个节点状态并进行状态切换。采用Raft的复制协议存储各点的高可用状态

GTM

(Global Transaction Manager)

全局事务管理器负责生成并维护全局时间戳,保证集群数据一致性。主备高可用架构,主备之间可以配置同步或异步方式

采用2pc方式,保证强一致性

CN(Coordinator·)协调器对外提供接口,负责进行SQL解析和优化、生成执行计划、并协调数据节点进行数据查询和写入采用完全对等的部署方式
DN(Datenode)数据节点用于处理存储本节点相关的元数据以及所在的业务数据的分片。主备高可用架构,主备之间可以配置同步或异步方式
HG高可用组管理同一DN,主备节点的群组。HG的个数取决于不同DN节点的数量每个高可用足,包含多个DN节点

3.架构演进

  • 集中式数据库的缺点

          无法横行拓展;存在单机性能上限;软硬件成本高;

  • 分布式中间件:中间件解决了横向拓展问题,但是底层架构仍不具备分布式能力;
  • 采用LSM-tree的分布式数据库,适用于写多读少场景,读性能不高;
  • 分布式数据的诞生是为了解决集中式数据库横向拓展的问题。

 

4.名词—分片及分片键

  • 为什么要分片:

  对于大业务量的应用(淘宝,京东)来说,单实例MySQL数据库在性能和容量上无法满足高需求,例如双十一,618购物节。所以,分布式数据库架构设计的原则是:选择一个适合的分片键和分片算法,把数据打散,并且业务的绝大部分查询都是根据分片键进行访问

  • 最推荐的分片规则:分库分表—每个分片的库名不一样,表名也不一样。
  • 分库分表的好处:
  1. 不同分片的数据可以在同一 MySQL 数据库实例上,便于做容量的规划和后期的扩展;
  2. 同一分片键的表都在同一库下,方便做整体数据的迁移和扩容。
  • 分片键(Shard Key),即用户可以通过这个字段进行数据的水平拆分
  • 分片键的要求是业务经常访问的字段,且业务之间的表大多能根据这个分片键进行单元化;
  • 选择完分片键后,就要选择分片算法,通常是 RANGE 或 HASH 算法;
  • 海量 OLTP 业务推荐使用 HASH 算法,强烈不推荐使用 RANGE 算法;

5.分布式环境下的一致性

  在分布式环境下,一致性指数据的多个副本之间是否保持一致的特性。

  分布式一致性协议:两阶段提交协议2PC(GBase 8c采用2PC协议)

  参考资料:分布式一致性,看一遍就懂 - 知乎

二、产品特性

1.多模——多存储模式

GBase 8c支持多个存储引擎以满足不同场景的业务需求

行存储引擎:主要面向OLTP场景设计,例如订货、发货、银行交易系统

列存储引擎:主要面向OLAP场景分析,例如数据统计报表分析系统

内存引擎:主要面向极致性能场景设计,完全支持ACID,包括严格的持久性和可用性支持,例如银行风控场景

行存表和列存表可以互相调用;(内存表不可以)

 

2.多态——多部署形态

  • 分布式形态

  CN协调器负责接收客户端的请求,进行SQL解析和优化,生成执行计划,并协调数据节点DN进行数据查询和写入,同时全局事务管理器GTM生成并维护全局时间戳,保证集群数据的强一致性。

  支持“读已提交”RC(Read Committed)和“可重复读”RR(Repeatable Read)。

  优势:可根据业务需求针对计算和存储能力分别进行水平拓展,适用于大数据量、高并发且追求高数据安全性的场景。

  • 主备式形态

GBase 8c主/备:负责存储业务数据、执行数据查询及向客户端驱动返回执行结果。

Storage:服务器的本地存储资源。

优势:部署简洁、交付高效、适用于低数据量场景,追求极致单机性能且要求数据备份的场景。

 

  • 单节点形态

  单节点部署。

  优势:低成本,部署简洁。

3.核心特性

 

4. OLTP特性

5.分布式特性

6.企业级特性

7.管理平台特性

 

三、核心技术

1.数据分布策略

通过复制表分布表实现从共享架构==>分布式架构

2.单节点事务/本地事务

 

本地事务:落在本地节点的事务直接走本地事务引擎,无需启动分布式事务。

性能高:不走两阶段提交过程,并发度高,满足吞吐量要求。

包含:单节点的查询、写入和更新。

 

3.分布式事务

 

跨节点的事务,通过GTM管理来执行分布式事务,按需分配资源。

刚性事务:严格的两阶段提交过程,实现跨节点分布式事务。

两阶段提交过程:分布事务和DN之间,Prepare => Prepare OK,Commit => Commit OK。

4.单表查询下推

单表查询:只涉及单表的查询 

 分片键上的where条件

直接下推到对应的DN执行:

 非分片键where条件

DN先做计算,CN做结果汇总(扫描所有数据节点),order by可以直接下推到DN:

 

5. Join查询下推

 

 分片键上的join条件

直接下推到对应的DN执行:

 

 非分片键上的join条件

DN直接做数据交换,避免CN成为性能瓶颈:

 

6.异地灾备—两地三中心

 

7.异地多活

 

8.基于全局事务提交时间戳TSO

  GTM采用基于全局事务提交时间戳的方案代替全局活跃事务列表的方案来管理全局事务;

  GBase 8c的DN节点部分场景仍采用活跃事务列表的方式管理事务;

  GTM生成并维护全局时间戳CSN,是一样自增的整数值“提交序列号”;

  当事务开启时从GTM获取当前时间戳CSN,事务提交时 commit,“提交序列号”+=1;

  CSN为8个字节,64位,8K大小。8位系统位,支持2的56次方的事务级别。

 

9.全局死锁解除

全局死锁:
数据库集群内,多个CN、DN上的多个数据库进程间互相 调用资源而出现循环等待的情况,称为全局死锁。
 
全局死锁解除
节点间检测出死锁环之后,将首个发现死锁环节点的事务退出的操作,从而解决全局死锁的问题。(系统自动解除,非手工指定推出的事务)

10.事务状态保持

当CN2故障宕机,切换至CN3进行数据协调。

 

11.原位更新

  GBase 8c采用原位更新技术: 将new tuple放在原位,将dead tuple集中存放在 undo; 去除vacuum,保证数据回收时IO稳定; 缩减数据空间。

 

12.灰度发布

  GBase 8c 支持灰度发布,可以在保证业务持续可用的条件下,进行数据库版本升级和发布。 在灰度发布的过程中,GBase 8c 可以秒级切换,具备系统持续可用的能力。

 

13.弹性伸缩

  GBase 8c 具备弹性伸缩能力,用户可以根据业务需求和策略设置伸缩规则。在业务需求增长时,系统自动增加数据库节点以保证计算存储能力,在业务需求下降时,系统自动减少数据库节点以节约成本。

  GBase 8c按表做hash(一种分片的方式),做扩容和缩容。

  一致性hash表在扩缩容时性能比较好,但是因为表拆分太多导致DML比较慢。一般建议大表创建一致性hash,小表采用普通hash表(建表默认是普通hahs)。

  GBase 8c的在线扩容功能,支持任意节点的扩容。

 

14.周边工具—数据迁移工具

 

 

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

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

相关文章

【超详细练气篇】STL之string类---常见接口函数(1)

个人主页:平行线也会相交💪 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C之路】💌 本专栏旨在记录C的学习路线,望对大家有所帮助🙇‍ 希望我们一起努力、成长&…

企业级ChatGPT开发入门实战直播21课第2课 运行日志及代码解析

企业级ChatGPT开发入门实战直播21课第2课 运行日志及代码解析 Gavin老师在企业级ChatGPT开发入门实战直播21课第2课中,讲解的ChatGPT应用案例开发架构图: ChatGPT案例运行日志 2023-06-11 16:06:57 DEBUG Calling on_part_begin with no data 2023-06-11

完型填空技巧

完形中分值最高的是逻辑关系题,逻辑关系分为两种,一种是选项就是逻辑关系的,例: Given the advantages of electronic money, you might thinkthat we would move quickly to the cashless society in which allpayments are made electronic…

常用设计模式(三)

接着之前的思路今天来介绍一下常用的设计模式有哪些 单例模式(Singleton Pattern) 又称为单体模式,保证一个类只有一个实例,并提供一个访问它的全局访问点。也就是说,第二次使用同一个类创建新对象的时候&#xff0c…

机器学习-8 集成学习

集成学习 集成学习理论集成学习概述集成学习理论 随机森林算法原理Scikit-learn中的随机森林分类器函数原型sklearn.ensemble.RandomForestClassifier(n_estimators10,criteriongini,max_depthNone,min_samples_split2,min_samples_leaf1,min_weight_fraction_leaf0.0,max_feat…

pytorch深度学习框架—torch.nn模块(一)

pytorch深度学习框架—torch.nn模块 torch.nn模块中包括了pytorch中已经准备好的层,方便使用者调用构建的网络。包括了卷积层,池化层,激活函数层,循环层,全连接层。 卷积层 pytorch中针对使用场景的不同,有…

多云时代来临,容器存储谁敢横刀立马?

多云时代来临,容器存储谁敢横刀立马? 原创2023-06-12 21:54大数据在线 2011年,Gartner提出了数字化转型的理念;十多年来,企业数字化经历了移动化、云化等几次变革潮流,如今走入一个新的时代:多…

Docker 生成 golang 程序镜像

一. 准备golang程序 package mainimport "github.com/gin-gonic/gin"func main() {go func() {r1 : gin.Default()r1.GET("/sayHello/", func(c *gin.Context) {c.JSON(200, "hello1")})r1.Run(":8992")}()r : gin.Default()r.GET(&q…

详解Linux内核安全技术——磁盘加密技术概述和eCryptfs

一、概述 加密是最常见的数据安全保护技术,在数据生命周期各阶段均有应用。从应用场景和技术实现上,按加密对象、用户是否感知、加密算法等维度,有多种分类及对应方案,并在主流操作系统如Windows、Linux、Android中有广泛应用。 …

AWS CodeWhisperer 简单介绍

一、何为AWS CodeWhisperer Amazon CodeWhisperer能够理解以自然语言(英语)编写的注释,并能实时生成多条代码建议, 以此提高开发人员生产力。 二、主要功能 Amazon CodeWhisperer 的主要功能,包括代码生成、引用追踪…

12.异常检测

12.1 异常检测的应用 异常检测最常见的应用是欺诈检测; 如果你有很多用户,每个用户都在从事不同的的活动,你可以对不同的用户活动计算特征变量,然后可以建立一个模型来表示用户表现出各种行为的可能性,用来表示用户行…

LiangGaRy-学习笔记-Day22

1、shell工具-tput 这个是tput bash工具 具体的操作如下: tput clear:清屏tput cup Y X 第Y行,第X列的位置 tput bold:字体加粗tput sgr0 : 重置命令tput setaf n n:代表数字0-7 0黑色1红色2绿色3黄色4蓝…

【Protobuf速成指南】Map类型的使用

文章目录 2.4 map 类型一、 基本认识二、map相关函数4.3 contact2.4的改写 2.4 map 类型 本系列文章将通过对通讯录项目的不断完善,带大家由浅入深的学习Protobuf的使用。这是Contacts的2.4版本,在这篇文章中将带大家学习Protobuf的 map 语法&#xff0c…

Java自制绘图软件

引言 在大连时接触了Java,Java非常优雅,我非常喜欢。期末老师要做一个项目作品,看着windows自带的画图软件,我决定自己动手做一个绘图软件。经过无数次界面调试,刷新层叠关系令我爆肝了一个月,最终完成了这…

没有AI歌手一键包,纯纯的算法项目

项目地址: https://github.com/PlayVoice/so-vits-svc-5.0 来源丨元语音技术 本项目的目标群体是:深度学习初学者,具备Pyhon和PyTorch的基本操作是使用本项目的前置条件; 本项目旨在帮助深度学习初学者,摆脱枯燥的纯…

2023年6月最新|大屏可视化

大屏可视化 一、可视化适配 大屏下显示一般都是16:9尺寸 1920*1080 ,做适配也就是在这个比例的基础上进行的 方案一:打开VSCode终端,下载flexible npm i lib-flexible修改源码 要修改的源码的路径: 项目/mode_modules/lib-fl…

Springboot+Vue服务器盲盒活动

文章目录 一、项目要求二、说明文档1、用户抽奖主页/raffle2、多种奖品链接1、奖品1 discont /discount2、奖品2 CPU upgrade /cpu3、奖品3 Memory upgrade /memory4、奖品4 Increase duration /duration5、奖品5 Send to server /server6、奖品6 Configuration upgrade /upgra…

信必优成功案例-全球Tops汽车技术供应商

该集团是全球Tops汽车技术供应商,业务范围涵盖了汽油系统、柴油系统、汽车底盘控制系统、汽车电子驱动、起动机与发电机、电动工具、家用电器、传动与控制技术、热力技术和安防系统等。信必优于2021年开始为该客户服务,参与了客户多个项目,以…

Android进阶 四大组件的工作过程(二):Service的工作过程

Android进阶 四大组件的工作过程(二):Service的工作过程 导语 本片文章主要是来介绍Service组件的工作过程的,主要分成Service的启动和Service的绑定两个部分来讲。上一篇文章我们已经介绍了Activity的工作工程,而Ser…

Windows软件:如何安装ideaIU-2020.3.3并使用无限重置插件达到永久使用

​前言: ​在我们做SpringBoot Java项目时,一个好的开发工具可以让我们的效率达到事半功倍,早期的eclipse已经无法满足我们日常需求,当然idea集成开发工具在很早前就已经进入市场,如今取得了无法撼动的地位&#xff0c…