ITPub博客

首页 > 数据库 > 数据库开发技术 > 我眼中的GaussDB——参加华为合伙伙伴赋能会有感

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

原创 数据库开发技术 作者:数据和云 时间:2019-09-12 17:23:05 0 删除 编辑


来源: 墨天轮( https://www.modb.pro/db/6416,复制至浏览器打开,即可查看)

文章为原创,如有转载, 请标明出处


引言


有幸参加华为合作伙伴赋能会,本文是对赋能会的一些总结,知识梳理。希望能让大家对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和其他数据库对比

 

图片.png


参考:

华为生态大学: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    



想了解更多关于数据库、云技术的内容吗?

快来关注“数据和云"、"云和恩墨,"公众号及"云和恩墨"官方网站,我们期待大家一同学习与进步!

2019年9月数据库流行度排行:MySQL 强劲增长完成深 V 反转


墨天轮小程序”DBASK“在线问答,随时解惑,欢迎了解和关注!

2019年9月数据库流行度排行:MySQL 强劲增长完成深 V 反转


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31556440/viewspace-2656931/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
分享数据库技术、新闻与信息,尤其是和Oracle数据库相关的内容,文章内容来自原创、专栏作者投稿或读者投稿。

注册时间:2018-09-27

  • 博文量
    88
  • 访问量
    53696