我眼中的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)

原文发表时间:2019-09-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券