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

news/2024/10/27 18:33:56/


前言

   随着传统的关系型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.ppmy.cn/news/351343.html

相关文章

第五阶段:shell编程企业实战,完整版

第五阶段:shell编程企业实战 第一章shell变量核心基础与进阶 1.1节、什么是shell 什么是shell Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等,用户输入一条命令,shell就解释执行一条,这种从键盘…

linux常用命令-part3

中文怎么发音 Ubuntu 有奔头,乌版图 Fedora 费德勒,菲朵拉 Debian 迪扁,德槟 CentOS 桑托斯 森头斯 Linux发展历史: 1) RedHat ---> 1.RedHat 2.CentOS 3.Fedora 桌面图形系统 rpm, yum 命令 2) Debian ---> 1.Debian 2.Ubuntu 桌面…

Ubuntu无root权限安装miniconda到配置jupyter、GPU版本pytorch一条龙服务

前言 倒腾学校服务器来回几次了,对学校给学生无root普通用户权限,老师要求的只能安装miniconda然后手动配jupyter、GPU版本pytorch等环境已经轻车熟路了。 如果你是老手,完全可以按照这些个命令安装。如果你是初学者,碰到了bug&am…

10.CSS3弹性布局、响应式布局、PS

响应式 Web 设计 - Viewport 响应式布局是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。 优点: 面对不同分辨率设备灵活性强 能够快捷解决多设备显示适应问题 缺点: 兼容各种设备工作量大,效率低下 代码累赘&…

python3打包成exe把openpyxl和pandas_Python openpyxl、pandas操作Excel方法简介与具体实例...

本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl; 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据分析模块Pandas也提供pandas.read_excel、pandas.DataFrame.to_excel功能。 那么…

expect详细介绍(中文手册)

本文由gunman翻译,只是希望能提供给大家一个更好的学习Expect的机会。第一次做翻译,其中有不少翻译的有问题的地方,还有一些语句没有翻译,直接写的英文。希望大家能够对照英文原文学习。 在这里要感谢一位陌生的朋友---zyz(只知道好像是一个四…

Vim速查手册:最强大的工具,最全面的指南

文章目录 1 核心概念1.1 模式1.1.1 正常模式1.1.2 插入模式1.1.3 选取模式 1.2 寄存器1.3 缓冲区 2 基本操作2.1 文件操作2.1.1 在终端窗口中打开文件2.1.2 在vim中的操作文件 2.2 光标定位2.2.1 行内光标定位2.2.2 跨行光标定位2.2.3 翻页和滚屏2.2.4 标记 2.3 插入2.4 撤销和…

Java实现Excel导入和导出,看这一篇就够了(珍藏版)

目录 目录 前言 1. 功能测试 1.1 测试准备 1.2 数据导入 1.2.1 导入解析为JSON 1.2.2 导入解析为对象(基础) 1.2.3 导入解析为对象(字段自动映射) 1.2.4 导入解析为对象(获取行号) 1.2.5 导入解析…