暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

我眼中的GaussDB——参加华为合伙伙伴赋能会有感

李宏达 2019-09-09
1637

引言


有幸参加华为合作伙伴赋能会,本文是对赋能会的一些总结,知识梳理。希望能让大家对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 技术指标

图片.png


4.2 基本概念

图片.png


4.3 架构对比

 

GaussDB 200采用Share-nothing架构,由多个拥有独立且互不共享CPU、内存、存储等系统资源的节点组成。在这样的系统架构中,业务数据被分散存储在多个物理节点上,数据分析任务被推送到数据所在位置就近执行,通过控制模块的协调,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。


Guass.png

Share-nothing架构具备如下优点:

· 最易于扩展的架构
——为商业智能BI( Business Intelligence)和数据分析的高并发、大数据量计算提供按需扩展的能力
—— 自动化的并行处理机制
· 内部自动并行处理,无需人工分区或优化
——数据加载与访问方式与一般数据库相同
——数据分布在所有的并行节点上
——每个节点只处理其中一部分数据
· 最优化的I/O处理
——所有的节点同时进行并行处理
——节点之间完全无共享,无I/O冲突
· 增加节点实现存储、查询及加载性能的线性扩展

 

GaussDB 200由多个MPPDBServer组成

 

2.png

图片.png

图片.png


4.4 网路拓扑


GaussDB 200整个系统网络划分为2个平面,即业务平面和管理平面,两个平面之间采用物理隔离的方式进行部署,保证业务、管理各自网络的安全性。

· 管理平面通过运维网络接入,提供系统管理和维护功能,主要用于集群的管理,对外提供集群监控、配置、审计、用户管理等服务。
· 业务平面,主要用于集群内部数据处理的专用网络平面,此处的业务平面非客户的应用网络平面。主备管理节点还支持设置外部管理网络的IP地址,用户可以通过外部管理网络进行集群管理。


组网方式分为单平面组网和双平面组网。采用单平面组网时,不区分管理平面和业务平面。在典型配置下, GaussDB 200集群双平面组网模型。


4.png


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故障时才起作用,且只存储数据日志,不存储数据页面。

 

5.png

 

4.6 数据查询的流程

 

6.png

 

具体查询流程如下:
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/小时/新增
节点。


7.png


GaussDB 200在线扩容具有如下特点:

 

· 扩容不中断业务。扩容过程中支持数据持续入库、查询业务不中断。

· 一致性Hash技术和多表并行扩容等技术,助力扩容性能提升。
采用一致性Hash技术使得重分布过程中需要迁移的数据量最小。
重分布过程中支持多表并行及用户自主选择表的重分布顺序。
支持扩容进度查询,实时监控扩容进度。
· 随着节点数增加,集群性能线性增长。
如图所示,在全并行分布式架构下, GaussDB 200随着节点数的增加,集群的
数据加载性能、业务处理性能和容量可线性扩展。


 

8.png


5. 附录


GaussDB200和其他数据库对比

 

图片.png


 参考:

华为生态大学    
GaussDB开发者社区
GaussDB论坛      


最后修改时间:2019-09-09 14:11:32
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论