注册
DPC分布式集群核心特性理解
专栏/培训园地/ 文章详情 /

DPC分布式集群核心特性理解

Yar 2024/12/06 371 0 0
摘要

DPC分布式集群核心特性理解

DMDPC特性

DMDPC全称为达梦分布式计算集群(DM Distributed Processing Cluster),是基于达梦数据库管理系统研发的一款同时支持OLAP和OLTP的新型分布式数据库系统;

DMDPC主要特性包括高可用、高扩展、高性能、高吞吐量、透明性

文章针对以上5个特点详细讲解 dmdpc的特性原理 和 怎么更好的利用这些特性

1 高可用

高可用解释:
实际就是故障情况下,仍能保持服务的连续性和数据的完整性,从而减少系统停机时间

dmdpc集群通过多副本(DM Multiple Copy)多计算节点的概念,实现服务的连续性和数据的完整性

例如:
dpc架构分为SP,MP,BP,如下图一个dpc多副本架构:
(dmdpc的架构在之前发表的 DPC部署详细步骤第一节 中有介绍)
image.png
①多副本
表中为3副本架构,ABC数据完全相同,A为主库,主库A故障,那么B、C其中一个就会自动选为主库提供服务,比如服务器4故障,那么服务器5上的BP1_B就会升级为主库提供服务;

注意
MP,BP需要设置交叉副本,所有副本不能在一台服务器,防止一台服务器宕机导致全部副本异常

②多计算节点
表格中有两个计算节点SP1,SP2,应用可以通过设置url连接集群,其中一台服务器1故障,那么就会自动连接到服务器2上的SP2,实现不间断提供数据库服务,例如:

jdbc:dm://DMDPC?DMDPC=(ip1:sp端口1,ip2:sp端口2)&switchTimes=2000&switchInterval=300

1.SP组
Ⅰ.多计算节点SP,涉及到一个SP组概念,一个 SP 组由一个或多个 SP 组成。SP 组的作用是将不同用户、不同应用使用的计算节点进行隔离,以便更好地管理硬件资源。
Ⅱ.比如不分SP组,某种类型的sql会使所有的SP都协同执行子计划,设置SP组,可以防止某个应用在高并发时导致所有SP都压力很高,影响其他应用;

2.MP主跟SP尽量不要在同一台服务器
比如MP主上的SP压力很高,耗尽了服务器资源,那么会导致MP主不能正常提供服务,导致整个集群异常;

2 高扩展

高扩展解释:
根据用户业务量的变化,可以对集群规模进行扩展和缩小

2.1 扩展SP

1.SP没有多副本概念,只能进行横向扩展;

2.新加入的 SP 节点可以立即用于响应更多的客户请求,分担子计划的执行;

例如:
2台SP的服务器资源不能支持业务系统的高并发需求时,可以考虑新增服务器来扩展SP节点(新增SP3,SP4...);

2.2 扩展BP

BP可以横向扩展和纵向扩展
1.纵向扩展
就是新增多个副本,副本数只能为大于等于 3 的奇数;

2.横向扩展
就是新增BP个数
横向扩展BP,需要考虑到如何更好的利用扩展后的服务器资源,dpc采用每个BP建多个表空间的方式解决资源合理利用问题;

示例:
比如说一个业务刚开始运行时,只有1个BP,运行2年后业务快速扩张,需要新增1个BP,怎么能更好的利用上这个BP呢?

①首先在前期规划时,一定注意每个BP建多个表空间,新增BP后可以迁移表空间在新BP上,这样在底层实现了数据迁移,不影响系统正常运行;
image.png
②后期业务数据的重分配问题(利用表空间组)
创建数据库用户时可以指定一个表空间组(表空间组中包括所有建的表空间),dmdpc可以实现这个用户的表合理分配在表空间组的每个表空间中,分区表的子表也可以分配到每个表空间;

例如:
数据库用户创建时指定了表空间组,这个用户的一个分区表TEST有两个子表,一个存储在表空间1中,另一个存储在表空间2中,这样在新增BP并迁移表空间后,就能实现原始数据的均匀分配,并且不影响数据完整性;

2.3 扩展MP

MP节点只能进行纵向扩展(新增副本),同一时间只能有一个主库提供服务

注意
尽量使MP主单独一台服务器运行,防止其他节点影响MP,导致整个集群异常;

3 透明性

dmdpc的透明性指架构逻辑对用户透明;
任意一个 SP 提供的功能与普通单机数据库基本无异。用户登录 DMDPC 的任意一个 SP 节点,即可获取完整的数据库服务;

4 高性能

dmdpc主要通过拆分、多副本之间异步通信、并行度等,来实现高性能;

4.1 拆分

拆分实际就是更好的利用上多台服务器资源
将业务的不同表、或者同一表的不同分区拆分到多个 BP,甚至于多个主机,在面对高并发时就能分摊并发压力;

例如:
查询分区表时,这个分区表子表分配在每个BP上,那么查询分区表时的执行计划就会被拆分为一系列子计划,这些子计划被分散到多个BP、SP 上执行以有效利用了硬件资源;

4.2 多副本之间异步通信

多副本系统中,主备库之间的日志同步采用异步通信方式,主库同步日志时不需要等
待备库刷盘或重演完成,备库也以异步消息通知主库自己的日志刷盘进度,消除了主备库之
间的消息同步等待时间;

4.3 并行度

dpc采用主任务和子任务方式,实现一个sql语句的拆分,不同的子任务允许有不同的并行度,同一个子任务在不同 BP 上的并行度也可以不同,并行度设置的灵活性能大大地提升线程资源的利用效率;(子计划和子任务就是同一对象在不同阶段的名称)

5 高吞吐量

高吞吐量也是充分利用多台物理主机的处理能力,多个节点同时提供数据库服务,支撑更多的用户连接请求,提供更高的吞吐量。

最后
分布式数据库,关键就在于分布
在高性能和高吞吐量方面,核心都在于利用上了多台服务器资源,分布式可以将数据分散存储在多个物理或逻辑位置上的数据库中(比如数据存储在多个BP节点),这些数据库通过网络连接在一起,协同工作以完成共同的任务,对外表现则为一个单一的数据库系统;

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服