我眼中的GaussDB——参加华为合伙伙伴赋能会有感
引言
有幸参加华为合作伙伴赋能会,本文是对赋能会的一些总结,知识梳理。希望能让大家对GaussDB能有一些了解,如有误之处望批评指正。
1. GaussDB 介绍
2019年5月15日,华为在北京发布了人工智能原生的名为“高斯(GaussDB)”的数据库软件,一款分布式数据库,取名Gauss是在致敬数学家高斯。
华为内部从2001年一直研发迭代,内部自用。今年5月份正式全球发布商用。
2. GaussDB 优势
· 全球首款AI-Native数据库。华为首次将人工智能技术融入分布式数据库的全生命周期,实现自运维、自管理、自调优、故障自诊断和自愈。
· 业界首个支持ARM架构的企业级数据库。过去的数据库都是基于单一计算架构开发的,比如x86、Power、SPARC等。
· 支持异构环境带来的性能提升效果明显。通过异构计算创新框架充分发挥X86、ARM、GPU、NPU多种算力优势,在权威标准测试集TPC-DS上,GaussDB的性能比业界提升50%,排名第一。
3. GaussDB 版本
GaussDB 100 OLTP 操作指令集,功能,函数,视图,各方面跟O非常相像。
GaussDB 200 OLAP 基于PG开发,代码量是PostgreSQL 的3~4倍 PG(40万行代码)。
本文是对GaussDB 200的介绍。
4. GaussDB 200
4.1 技术指标
4.2 基本概念
4.3 架构对比
GaussDB 200采用Share-nothing架构,由多个拥有独立且互不共享CPU、内存、存储等系统资源的节点组成。在这样的系统架构中,业务数据被分散存储在多个物理节点上,数据分析任务被推送到数据所在位置就近执行,通过控制模块的协调,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。
Share-nothing架构具备如下优点:
· 最易于扩展的架构
——为商业智能BI( Business Intelligence)和数据分析的高并发、大数据量计算提供按需扩展的能力
—— 自动化的并行处理机制
· 内部自动并行处理,无需人工分区或优化
——数据加载与访问方式与一般数据库相同
——数据分布在所有的并行节点上
——每个节点只处理其中一部分数据
· 最优化的I/O处理
——所有的节点同时进行并行处理
——节点之间完全无共享,无I/O冲突
· 增加节点实现存储、查询及加载性能的线性扩展
GaussDB 200由多个MPPDBServer组成
4.4 网路拓扑
GaussDB 200整个系统网络划分为2个平面,即业务平面和管理平面,两个平面之间采用物理隔离的方式进行部署,保证业务、管理各自网络的安全性。
· 管理平面通过运维网络接入,提供系统管理和维护功能,主要用于集群的管理,对外提供集群监控、配置、审计、用户管理等服务。
· 业务平面,主要用于集群内部数据处理的专用网络平面,此处的业务平面非客户的应用网络平面。主备管理节点还支持设置外部管理网络的IP地址,用户可以通过外部管理网络进行集群管理。
组网方式分为单平面组网和双平面组网。采用单平面组网时,不区分管理平面和业务平面。在典型配置下, GaussDB 200集群双平面组网模型。
4.5 集群部署方案
为减少硬件故障对系统可用性的影响,建议集群部署方案遵循如下原则。
· 对于每组实例,其主、备部署在不同的节点上。例如:GTM的主、备分别部署在
不同的节点上。DN的主、备、从备部署在不同的节点上。
· 建议节点内存大于等于512G,每个节点部署4个DN。
说明
轻量化单节点场景下,单节点支持部署2~6个DN。
· 低并发场景下,整个集群部署2~4个CN即可以满足使用要求。
· 建议GTM、 CM部署在没有CN的节点上。如此部署,既减少某节点故障带来的损
失,还可以避免集群运行压力集中在个别节点上。
· 安全环是集群组网的基本单元,普通安全环内包含至少3个服务器,各服务器的
DN形成完备的主备关系。系统默认会根据Datanode进程数据目录的个数加1确定
环节点数,也可以配置环节点列表和环节点数参数指定成环规则,建议使用小
环,环节点数不宜过大。
为保证负载均衡和资源的有效利用,在遵循上述原则的基础上,建议部署模式如下:
· 主GTM和备CMServer部署在同一个节点上,备GTM和主CMServer部署在同一个
节点上。
· 根据需要在部分节点上部署CN。
· 对于DN的部署模式:
——一个服务器上的主DN对应的备节点和从备节点会按照图2-6所示自动依照安
全环中节点的顺序依次分散部署在其他节点上, DN分布均衡。
——各个节点上的DN数要求相同。
——DN的主、备、从备部署在不同的节点上。
说明
从备DN不占用实际存储空间,仅在主、备DN故障时才起作用,且只存储数据日志,不存储数据页面。
4.6 数据查询的流程
具体查询流程如下:
1. 用户通过应用程序发出查询本地数据的SQL请求到Coordinator。
2. Coordinator接收用户的SQL请求,分配服务进程,向GTM请求分配全局事务信
息。
3. GTM接收到Coordinator的请求,返回全局事务信息给Coordinator。
4. Coordinator根据数据分布信息以及系统元信息,解析SQL为查询计划树,从查询计
划树中提取可以发送到Datanode的执行步骤,封装成SQL语句或者子执行计划树,
发送到Datanode执行。
5. Datanode接收到读取任务后,查询具体Storage上的本地数据块。
6. Datanode任务执行后,将执行结果返回给Coordinator。
7. Coordinator将查询结果通过应用程序返回给用户。
4.7 在线扩容
随着客户业务的发展,现有系统在磁盘容量、性能等方面将逐步呈现瓶颈。GaussDB
200分布式数据库集群提供scale-out线性扩展能力,满足客户业务增长和利旧的诉求
(将闲置的机器加入系统)。
GaussDB 200采用Node Group技术,支持多表并行扩容,扩容速度高达400G/小时/新增
节点。
GaussDB 200在线扩容具有如下特点:
· 扩容不中断业务。扩容过程中支持数据持续入库、查询业务不中断。
· 一致性Hash技术和多表并行扩容等技术,助力扩容性能提升。
采用一致性Hash技术使得重分布过程中需要迁移的数据量最小。
重分布过程中支持多表并行及用户自主选择表的重分布顺序。
支持扩容进度查询,实时监控扩容进度。
· 随着节点数增加,集群性能线性增长。
如图所示,在全并行分布式架构下, GaussDB 200随着节点数的增加,集群的
数据加载性能、业务处理性能和容量可线性扩展。
5. 附录
GaussDB200和其他数据库对比
参考:
华为生态大学:https://partner.huawei.com/university/
GaussDB开发者社区:https://developer.huaweicloud.com/gaussdb/index.html
GaussDB论坛:https://bbs.huaweicloud.com/forum/forum.php?mod=forumdisplay&fid=565&from=groupmessage
来源:墨天轮(https://www.modb.pro/db/6416,复制在浏览器打开或者点击“阅读原文”)
资源下载
关注公众号:数据和云(OraNews)回复关键字获取
help,30万+下载的完整菜单栏
2019DTCC,数据库大会PPT
2018DTCC , 数据库大会PPT
2018DTC,2018 DTC 大会 PPT
ENMOBK,《Oracle性能优化与诊断案例》
DBALIFE,“DBA 的一天”海报
DBA04,DBA 手记4 电子书
122ARCH,Oracle 12.2体系结构图
2018OOW,Oracle OpenWorld 资料
云和恩墨Bethune Pro2 企业版,集监控、巡检、安全于一身,你的专属数据库实时监控和智能巡检平台,漂亮的不像实力派,你值得拥有!
云和恩墨zData一体机现已发布超融合版本和精简版,支持各种简化场景部署,零数据丢失备份一体机ZDBM也已发布,欢迎关注。
云和恩墨大讲堂 | 一个分享交流的地方
长按,识别二维码,加入万人交流社群
请备注:云和恩墨大讲堂