目录
GBase 8c 学习笔记 001 —— GBase 8c V5 产品简介
概念
名词 | 角色 | 功能 | 配置方式 |
---|---|---|---|
GHA Server | 高可用(highavailability)管理器 | 管理整个集群各节点的高可用状态,类似于patroni | 主备高可用架,主备之间可以配置同步或异步方式 |
DCS/HA Center | 集群状态管理器 | 存储各个节点的高可用状态,负责在故障情况下判断集群各个节点状态。 | 采用Raft的复制协议 |
GTM | 全局事务管理器(Global TransactionManager) | 负责生成并维护全局时间戳,保证集群数据一致性 | 主备高可用架构,主备之间可以配置同步或异步方式 |
CN/Coordinator | 协调器 | 对外提供接口,负责进行SQL解析和优化、生成执行计划,并协调数据节点进行数据查询和写入。 | 采用完全对等的部署方式 |
DN/Datanode | 数据节点 | 用于处理存储本节点相关的元数据以及所在的业务数据的分片。 | 主备高可用架构,主备之间可以配置同步或异步方式 |
产品简介
“多模多态”之多模——多存储模式
GBase 8c支持多个存储引擎以满足不同场景的业务需求
- 行存储引擎: 主要面向OLTP场景设计,例如订货、发货、银行交易系统;
- 列存储引擎: 主要面向OLAP场景设计,例如数据统计报表分析系统;
- 内存引擎: 主要面向极致性能场景设计,例如银行风控场景
“多模多态”之多态——多部署模式
- 分布式形态
- 方案: GBase 8c 分布式形态,支持分布式全组件冗余的高可用,支持计算存储分离的部署。
- 优势: 可以根据业务需求对计算和存储能力分别进行水平扩展,适用于大数据量高并发且追求数据高安全性的场景。
- 主备式形态
- 方案: GBase 8c 主备式形态,支持一主多备部署方式。
- 优势: 部署简洁,交付高效,适用于较低数据量、追求极致单机性能且要求数据备份的**场景。
- **单节点形态
- 方案: GBase 8c 单节点形态,支持单节点部署。
- 优势: 低成本,部署简洁。
GBase 8c 架构——分布式形态
- Coordinator 协调器: 负责接收客户端请求,进行SQL解析和优化、生成执行计划,并协调数据节点进行数据查询和写入。
- Data Node 数据节点: 完成数据存储和本地数据查询和写入。
- GTM 全局事务管理器: 生成并维护全局时间戳,保证集群数据强一致性。
GBase 8c 架构——主备/单机形态
- HA Center: GBase 8c高可用模块,负责在故障情况下判断节点状态并进行状态切换。
- GBase 8c主(备): 负责存储业务数据(支持行存、列存、内存表存储)、执行数据查询及向客户端驱动返回执行结果。
- Storage: 服务器的本地存储资源,持久化存储数据。
GBase 8c 产品家庭
- GBase 8c Platform 通用管理平台
- 系统部署
- 配置管理
- 运维监控
- 告警管理
- 日志审计
- 备份恢复
- 扩容缩容
- 灰度发布
- 性能分析
- ……
- GBase 8c 数据库
- 稳定可靠
- 兼容国产生态
- 强一致性分布式事务
- 弹性伸缩
- 兼容主流语法
- 部署灵活
- GBase 8c DMT数据迁移平台
- 数据库对象/数据迁移
- 迁移结果比对
- 支持Oracle、MySQL、PostgreSQl等主流数据库的迁移
产品特性
核心特性
- 稳定可靠
- 全局无单点,高可用达99.999%;
- 支持两地三中心,数据永不丢失;
- 支持异地多活,业务连续在线;
- 分布式事务
- 强一致性分布式事务
- 支持RC和RR隔离级别
- 主流数据库兼容
- 支持标准SQL语法
- 兼容PostgreSQL语法
- 兼容Oracle常见语法
- 多模多态
- 支持单机、主备式与分布式三种部署,支持行存、列存、内存三种存储引擎,满足用户各种业务需求。
- 弹性伸缩
- 支持在线扩容缩容
- 联邦架构,计算存储分离
- 生态兼容
- 支持物理服务器部署、容器、私有云、混合云、公有云部署
- 支持国产主流芯片、服务器、操作系统、中间件产品,服务完全本地化
OLTP特性
- 完全支持 SQL-92、99、2003标准
- 兼容主流数据库语法
- 支持主流字符集
- 支持常见数据类型
- 支持自定义数据类型
- 支持具有ACID特性的事务
- 支持RC和RR事务隔离级别
- 支持视图、索引(B-TREE索引、GIN倒排索引、Gist空间索引等)、触发器、外部表
- 支持AI功能。数据库自治运维,数据库驱动AI,数据库内AI功能,ABO优化器
- 支持MVCC、悲观锁和闪回功能
- 支持数据库表分区
分布式特性
- 并行处理
- 支持多分片数据并行处理和执行
- 并发事务
- 支持多节点集群部署下,多节点事务并发和数据写入,同时满足事务隔离级别要求
- 数据分片
- 根据指定的一列或多列数据,采用一定算法进行映射支持复制表、分布表
- 数据安全
- 强一致性的多副本数据安全
- 高可用
- 多节点部署,单节点发生故障不会导致服务中断
- 分布式事务处理
- 支持完备的分布式事务处理能力,包括事务的原子性、一致性、隔离性、数据持久性
- 支持跨节点事务,支持多节点写操作
企业级特性
- 弹性伸缩
- 在线扩容/缩容、灰度发布
- 异地多活
- 支持异地多活部署
- 异地多活数据强一致性
- 两地三中心
- 支持两地三中心部署,数据中心之间采用异步数据复制支持数据完整性和最终一致性
*** 数据安全特性** - 支持自主访问控制、基于安全标签的强制访问控制、用户角色三权分立、审计、加密、身份识别与验证等安全功能。
- 支持案例管理功能和审计功能等。
- 支持两地三中心部署,数据中心之间采用异步数据复制支持数据完整性和最终一致性
- CDC(Changed Data Capture)
- 支持CDC,CDC提供强一致性事务支持
- 数据备份还原
- 对数据进行物理/逻辑备份还原,全局备份还原以及增量备份还原。
- 国产生态
- 多种国产CPU:飞腾/鲲鹏/海光等
- 基于国产CPU的服务器:浪潮/泰山/华三/曙光等
- 国产操作系统:麒麟/统信等
管理平台特性
- 部署配置
- 系统部署
- 配置管理
- 扩容缩容
- 滚动升级
- 系统管理
- 数据库对象管理:模式、表、视图、索引
- 数据库用户管理:用户、角色、权限
- 运维监控
- 系统信息查看
- 性能指标监控
- 日志分析
- 告警管理
- 企业特性
- 备份恢复
- 跨数据中心同步
- 数据加载
- 数据双向同步
核心技术
数据分布策略
- 复制表: 每个节点上都复制一份数据关联时在节点本地完成(全量复制)
- 分布表: 一份数据根据某个键值水平拆分到不同的节点上(水平拆分)
事务处理
机制
- 刚性事务: 保障事务的ACID
- 本地事务:直接处理,落在本地节点的事务直接走本地事务引擎,无须启动分布式事务
- 跨节点事务:按需分配资源,多节点事务,当需要时再加入节点
- 自动路由: 本地/分布式引擎自动选择
本地事务
- 根据应用SQL判断Sharding落到单HG或者应用指定HG,此时只启动本地事务,直接发给具体HG的节点。
- 性能高。不走两阶段提交过程,并发度高,满足吞吐量要求。
Begin /*+db.t1.id=1*/;
1. Select * from t1 where id = 1; //单节点查询
2. insert into t1 values(1, 'aaa'); //单节点写入
3. Update t1 set name = 'bbb' where id = 1; //
单节点更新
Commit /*+db.t1.id=1*/;
分布式事务
- 跨节点的事务,通过GTM管理来执行分布式事务。
- 刚性事务。严格的两阶段提交过程,实现跨节点分布式事务。
Begin; //Transaction Start
1. Select * from t1 where id = 1; //单节点查询
2. Select * from t1, t2 where t1.id = t2.id;//跨节点查询
3. insert into t1 values(1, 'aaa'); //单节点写入
4. Update t1 set name = 'bbb' where id = 1; // 单节点更新
5. Delete from t2 where id < 10; //跨节点删除
Commit; //Transaction Commit
查询优化
单表查询下推
- 分片键上的where条件, 直接下推到对应DN执行
- 非分片键where条件, DN先计算,CN做结果汇总,order by可以直接下推到DN
JOIN查询下推
- 分片键上的join条件, 直接下推到对应DN执行
- 非分片键join条件, DN直接做数据交换,避免CN成为性能瓶颈
高可用
同机房、同城/异地多活
- 同机房
- 数据库集群部署在同一机房的不同服务器/机架上。
- 可以抵御硬件级别故障,不能抵御城市级别和机房级别灾难。
- 故障自动切换,RPO=0,RTO秒级。
- 同城
- 数据库集群部署在同一城市的不同机房间。
- 可以抵御硬件级别故障和机房级别灾难,不能抵御城市级别灾难。
- 故障自动切换,RPO=0,RTO秒级。
- 同城容灾需要其中两机房之间距离小于50千米。
异地灾备
支持异地灾备
- GBase 8c集群不同节点采用各自对应的高可用部署方式,两地间采用异步复制的备份方式。
- 可以抵御硬件级别故障和机房级别、城市级别灾难,两地之间距离可以大于1000千米。
异地多活
支持异地多活
- GBase 8c支持多集群部署,集群间数据双向同步,数据以某一维度进行分区调度。
- 可以抵御硬件级别故障和机房级别、城市级别灾难,两地之间距离可以大于1000千米。
核心技术
基于全局事务提交时间戳TSO
- GTM负责维护全局时间戳CSN;
- 当开启事务时从GTM获取当前的时间戳
- 当事务提交的时候重新获取一遍时间戳(CSN+1)
全局死锁解除
- 全局死锁
- 数据库集群内,多个CN、DN上的多个数据库进程间互相调用资源而出现循环等待的情况,称为全局死锁。
- 全局死锁解除
- 节点间检测出死锁环之后,将首个发现死锁环节点的事务退出的操作,从而解决全局死锁的问题。
原位更新
- GBase 8c采用原位更新技术
- 将new tuple放在原位,将dead tuple集中存放在undo;
- 去除vacuum,保证数据回收时IO稳定;
- 数据空间缩减。
灰度发布
- GBase 8c 支持灰度发布,可以在保证业务持续可用的条件下,进行数据库版本升级和发布。
- 在灰度发布的过程中,GBase 8c 可以秒级切换,具备系统持续可用的能力。
弹性收缩
- GBase 8c 具备弹性伸缩能力,用户可以根据业务需求和策略设置伸缩规则。在业务需求增长时,系统自动增加数据库节点以保证计算存储能力,在业务需求下降时,系统自动减少数据库节点以节约成本。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。