GaussDB(DWS)中CN与业务并发度的关系详解

闻鲜生 发表于 2022/03/29 17:58:01 2022/03/29
【摘要】 数据仓库由于其分布式架构,具备高扩展,低成本,高性能,高可靠,支持海量数据等特征。随着混合负载和湖仓一体的发展,为了提升资源利用率,对数仓的并发度要求也在逐步提高。本文将详细讲解GaussDB(DWS)的业务并发度和其CN组件的关系。了解了GaussDB(DWS)并发度的原理,提升业务并发度不再是难题。

数据仓库由于其分布式架构,具备高扩展,低成本,高性能,高可靠,支持海量数据等特征。随着混合负载和湖仓一体的发展,为了提升资源利用率,对数仓的并发度要求也在逐步提高。本文将详细讲解GaussDB(DWS)的业务并发度和其CN组件的关系。了解了GaussDB(DWS)并发度的原理,提升业务并发度不再是难题。

一、CN组件的作用是什么?

CN全称协调节点(Coordinator Node)。是和用户关系最密切也是DWS内部非常重要的一个组件,它负责提供外部应用接口、优化全局执行计划、向Datanode分发执行计划,以及汇总、处理执行结果。

集群中,CN有多个并且CN的角色是对等的(执行DML语句时连接到任何一个CN都可以得到一致的结果)。只需要在CN和应用程序之间增加一个负载均衡器,使得CN对应用是透明的。DWS通过CCN(全称Control Coordinator Node,中央CN,一种角色)负责集群内的资源全局负载控制,以实现自适应的动态负载管理。CM(全称Cluster Manager,一种组件,负责DWS的集群自动化管理)在第一次集群启动时,通过集群部署形式,选择编号最小的CN作为CCN。若CCN故障之后,由CM选择新的CCN进行替换。

一次简单的查询流程如下所示:

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将查询结果通过应用程序返回给用户。

二、CN与业务并发度的关系

CN是外部应用的接口,CN的并发能力直接决定了业务的并发度。单CN的并发能力受如下几个参数控制:

max_connections: 允许和数据库连接的最大并发连接数。此参数会影响集群的并发能力。CN节点默认值为800,最多允许800个会话接入。

max_active_statements:设置全局的最大并发数量。此参数只应用到CN,且针对一个CN上的执行作业。默认值60,最多允许60个作业同时运行,其余作业将会排队。

CN的max_connections和max_active_statements参数支持用户根据业务并发度诉求修改,详细操作流程如下图:

点击集群详情的“参数修改”页面,搜索需要修改的参数,会显示对应参数和当前值,参数值框里面输入修改值,点击“保存”按钮保存配置。“是否重启集群”栏显示“是”的参数说明需要重启集群生效,请寻找业务空闲期修改。

三、CN不够怎么办?

单CN的并发能力会受到硬件资源和拓扑结构的限制,不能无限制调大。DWS是分布式架构集群,此时就要考虑横向扩展,增加更多的CN来提升业务并发度,充分利用分布式架构的优势。

o 下发集群时配置更多的CN

CN数量在下发DWS集群时可以配置。默认值3个,最少2个,最多不超过“节点数量”,如果节点数量大于20,则CN数量最多可配置20个。如下图所示,在“创建数据仓库集群”的购买页面的“高级配置”选择“自定义”,“CN部署量”即为CN的初始部署数量。

o 下发集群后在线添加CN

集群下发后,如果由于业务并发度高导致CN不够用,可以在线添加CN,具体操作如下图所示。增加CN耗时与用户表数量有关,大概10分钟左右,增加CN过程中间有一段时间会锁集群,阻塞DDL语句执行。

四、如何做到多个CN负载均衡?

如果集群部署了多个CN,但是怎么做到CN的负载均衡,保证业务并发度和性能最大化呢?DWS提供了弹性负载均衡(Elastic Load Balance,简称ELB)服务。弹性负载均衡可以通过流量分发扩展应用系统对外的服务能力,同时通过消除单点故障提升应用系统的可用性。

  • ELB的配置原理介绍

  • ELB的绑定方法

五、CN故障了怎么办?

由于DWS的CN角色是对等的,同时对外提供服务,因此必须保证其元数据的强一致性,因此外部应用连接任一个CN执行涉及元数据变更的操作(如DDL,DCL)必须分发到所有的CN同时完成。 如果单个CN故障,会影响所有CN的DDL和DCL操作。目前DWS提供了两个解决方案:

o 自动剔除CN

如果集群绑定了弹性负载均衡(ELB),则会自动打开自动剔除CN功能,DWS CM周期性检测CN的状态,如果发现CN连续故障600s,则会立即从整个集群剔除该故障CN,保证其余CN的业务不受到影响。再配合弹性负载均衡服务,会自动把发送到故障CN的作业转发到其他正常CN。

o 删除cn介绍

如果发现集群部分CN故障,或存在亚健康状态,可以选择手动删除故障CN,具体操作流程如下。手动删除CN耗时固定,1分钟左右。

总结:

综上,我们了解了GaussDB(DWS)的业务并发度和CN的关系,如何提升单个CN的业务并发度和通过增加CN的方式来提升整个集群的并发度,并且在CN较多时如何安装负载均衡(ELB)来保证合理利用资源不会出现瓶颈,并且在单CN故障时如何快速剔除CN排除故障CN对业务的影响。


希望通过此文,让你能够对CN作用,CN运维操作,业务并发度有进一步的了解!


理论不如实践,那如何快速体验DWS呢?DWS现推出了一项Demo体验活动。进入DWS首页,点击“Demo体验”,快速便捷体验一把!

体验过程中有任何建议和意见,可以去DWS社区论坛反馈哦;)

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。