GDCP认证学习笔记(一)国产数据库黑科技——虚拟集群支撑业务隔离、统一管理、一库多芯
2026年第一个认证,工作原因,报名了南大通用GBase的GDCP培训,不动笔墨不读书,未来两周将逐步更新培训认证学习笔记。
之前参加过一些其他厂商的中级认证,基本都是从架构开始讲起,GBase的P级第一课虽然也是讲架构,但是名字却是“GBase 8a mpp Cluster虚拟集群”,可见这个概念在GBase中的重要地位。那么先看概念。
什么是虚拟集群
GBase整体架构分为三个角色,分别是
GCluster:调度节点,负责SQL解析、优化、分布式执行计划生成和下发。
GCWare:控制节点,存储集群状态信息,控制各节点数据一致性状态。
GNode:实际数据存储和计算的节点。
虚拟集群(Virtual Cluster),是对GNode节点的一种物理分割,可以将一个大集群垂直分割为多个逻辑子集群,各逻辑子集群可以根据不同业务的存储与计算需求,独立规划、扩展集群规模和计算资源,同时各逻辑子集群之间还支持异构硬件。
逻辑上,虚拟集群提供了比数据库(database)或者模式(schema)【此处不做这两个概念的区分,简单理解为database=schema】更高维度的一层管理概念,一般访问数据库表的时候,如pg,完整的数据表描述形如schema.table,而在Gbase8a中,则是vc1.database.tabel
虚拟集群有啥好处
- 统一管理能力:在集群内部进行虚拟集群划分,在增强集群扩展能力的同时,还提供了统一的管理视图,可以大幅简化多集群的运维复杂度;
- 系统隔离能力:不同业务系统可以使用独立的逻辑子集群,资源互不干扰,故障也不会互相影响,确保了关键业务的稳定性;
- 透明访问机制:应用对多个物理集群的访问变得透明,可以通过vc1.db1.table1 join vc2.db2.table2进行关联查询,有效减少数据孤岛;
- 异构混合部署:支持不同配置的服务器、不同芯片平台、不同操作系统的混搭,实现兼容软硬件的混合部署。
市场需求如何
说这个是黑科技,我觉得他可以帮助用户解决最主要的两个问题:
数据孤岛问题——业务隔离、统一管理:过去数仓建设的一大头疼问题就是数据孤岛,今天我建一套系统,明天他建一套系统,逐渐系统多了之后,各系统之间的数据访问便成了老大难问题,各种ETL、DBLink配的不亦乐乎,同时运维压力成倍增加,而通过虚拟集群,构建统一的数据平台,便可以实现各系统的业务独立、数据互访、统一运维等能力。
底层硬件问题——一库多芯,异构跨代:目前信创建设阶段,整个过程肯定不是一蹴而就的,期间必然会有不同架构CPU并存的情况,即使没有信创,对于部分大客户来说,3年前的服务器利旧的需求也是客观存在的,不同配置的基础设施跨代并存的问题始终存在,过去我们只能双手一摊,要求客户必须配置同样的服务器,否则木桶短板理论了解一下。而有了虚拟集群,便可以vc1部署五年前低配x86,vc2部署最新的C86-5G芯片,vc3部署鲲鹏芯片,完美解决。
其他知识点
虚拟集群就那么多,实际部署应用在第二天课程,其他知识要点:
元数据:
元数据主要由Gcluster组件负责管理和保存。
- gcluster节点保存的元数据包括: VC信息、TableID信息、库字符集信息、表结构信息、列属性信息、表属性信息和索引信息等。用户可以通过查询系统库information_schema和gbase库进行查看。所有gcluster节点的元数据内容保持一致。
- Gcware组件负责记录集群所需的一致性信息。比如:集群的拓扑结构和分片规则、SCN号、TABLE_ID、COMMIT_ID、TASK_ID、VCID、集群恢复日志、集群状态、集群锁等信息。gcadmin工具可查询部分信息内容。
- gnode节点上只保存属于自己的元数据。包括:读写标志信息、DC信息等。
用户数据存储
根据分布规则不同:
- 随机分布:用户数据按照平均分布原则,将用户数据随机分布到集群内的各个gnode节点上。
- hash分布:用户数据计算hash结果后,匹配distribution分布信息表内的分片,按照分片与节点的映射关系分布到指定节点上。
分布信息表
Distribution分布信息表,简称分布表。是8a数据库存放数据的核心映射表。它记录着VC、Rack、节点和分片布局的关键信息。它是数据库数据访问和存储的关键,决定着数据库的整体性能和高可用性。
分片规则:
- pattern 1(又称“负载均衡模式”)系统提供的默认模式。Pattern 1模式会根据节点的分布方式,自动选择不同的备份规则。节点的分布方式包括:多rack和单rack
rack类似于机架的概念,rack1上的主分片副本会同步到rack2上,并且按照节点顺序放置,如Node1上分片1和分片7的副本分别放在Node5和Node6上,以保证负载均衡,当Node1出现故障时,备份节点也可以分担业务压力。
单rack就相当于所有服务器在一个机架,同样副本也是按照节点顺序放置,如Node1上分片1和分片5的副本分别放在Node2和Node3上,以保证负载均衡,当Node1出现故障时,备份节点也可以分担业务压力。
- pattern 2(又称“节点高可用模式”)该模式采用将节点内的主分片自动完整备份到下一个节点的备份方式。此种方式忽略了rack的概念,完全是针对节点进行的备份。
每个节点的副本都完全的备份在另外的节点,当Node1出现故障时,备份节点Node2将承担双倍的业务压力,好处是,这种部署模式理论上最多可以承受集群内一半节点的故障,适用于奇数节点和偶数节点分别部署在不同的机柜内的场景。
- 还有一种自定义模式,可以让用户写xml文件自己决定副本的分配位置。
高可用机制
GBase 8a MPP Cluster通过集群的高可用机制,可以实现故障节点的快速切换,保障集群服务正常运转。这个是数据库集群的重点,后面课程应该会更详细地说明。
数据一致性原理
Gbase 8a MPP Cluster 数据库是通过记录和恢复event日志,实现主备数据的一致性。
- DDLEVENT:记录集群在执行DDL语句期间由于节点或进程故障导致的节点DDL执行信息不一致所产生的event信息。
- DMLEVENT:记录集群在执行DML语句期间由于节点或进程等问题引起的节点间主备分片不一致的信息。
- DMLSTORAGEEVENT:当数据文件丢失、文件读写报错等情况发生,GBase 8a数据库先尝试dmlevent修复,如果因存储类故障无法修复,则会自动升级为dmlstorageevent。产生dmlstorageevent之后先进行ddlevent修复,再进行dmlevent修复。
集群镜像
最后一部分,再次介绍了虚拟集群的增强功能——集群镜像,通过镜像集群进行表数据的实时同步,对镜像集群任意一端发起数据变更都会实时同步到镜像表,从而提供一种负载均衡和集群级别的高可用容灾模式,并且支持同城或异地部署。
评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526