注册
DM 数据库运行模式总结
培训园地/ 文章详情 /

DM 数据库运行模式总结

周炼赤 2023/05/19 1343 1 0

一、单机模式

达梦单机模式就是单节点部署达梦数据库,是达梦数据库最基础的部署运行模式。

二、大规模并行处理 MPP

1、DM MPP 架构

达梦大规模并行处理 MPP(DM Massively Parallel Processing,缩写 DM MPP)是基于达梦数据库管理系统研发的完全对等无共享式集群组件,支持将多个 DM 数据库实例组织为一个并行计算网络,对外提供统一的数据库服务。

DM MPP 采用完全对等无共享架构,具体的系统架构下图所示:
1.png

DM MPP 中的每一个 DM 数据库服务器实例作为一个执行节点,简称 EP。客户端可连接任意一个 EP 节点进行操作,所有 EP 对客户来说都是对等的。系统内每个 EP 只负责自身部分数据的读写,执行计划在所有 EP 并行执行,能充分利用各 EP 的计算能力及发挥各 EP 独立存储的优势。数据只在必要时通过 DM 的高速邮件 MAL 系统在 EP 间传递。当通信代价占整体执行代价的比例较小时,更能体现大规模并行处理的优势,随着系统规模的扩大,并行支路越多,优势越明显。

2.png

2、DM MPP 特性

使用 DM MPP 可获得以下功能特性支持:

  • TB/PB 级数据分析:支持数据的并行装载和操作的并行执行,数据分布式存储在各 EP 中,能支持 TB/PB 级数据分析。
  • 支持绝大部分单机功能:支持绝大部分的 DM 单机版功能,同时支持行、列存储,支持存储过程、触发器、索引、分区表、多媒体数据类型等。
  • 高性价比:无需额外配置特殊软、硬件,性价比超高。
  • 高可靠性:DM MPP 与 DM 数据守护相结合,为 MPP 系统中的每个 EP 配置一个或多个实时备库,在 EP 发生故障时其对应备库能迅速切换为主库继续提供服务,确保系统的高可用性。
  • 支持超大型集群:支持最多 1024 个 EP,轻松组建超大型集群。

3、数据分布

DM MPP 系统中的数据分布在各 EP 中,支持表数据的哈希分布、随机分布、复制分布、范围分布、LIST 分布类型,用户可根据应用的实际情况为表数据选择合适的分布类型。

  • 哈希分布:哈希分布按照表定义中指定的一列或多列对行数据计算一个哈希值,再根据哈希值和哈希映射表,将该行数据分布到映射的节点上。当表的连接查询中使用的连接键为哈希分布列时,MPP 下的查询计划会进行优化,比如可能减少计划中通讯操作符个数、使用索引、对分组计划优化等,减少数据在节点间的分发,提高查询效率。使用哈希分布时,节点间的数据是否均衡,取决于设置的哈希分布列以及表中的数据情况。当节点个数变动时,各个节点的数据需要按照新的哈希映射表重新进行分发。
  • 随机分布:随机分布表不存在分布列,插入表数据时会按照一定的随机算法,将数据随机均衡分布到各个节点。随机分布的优点是数据和节点间不存在映射关系。节点个数变动后,如果没有节点数据均衡的要求,可以不用对节点现有的数据进行变动。一般来说,随机分布对于复杂查询及存在较多的节点间数据分发情况,性能不如哈希分布高。
  • 复制分布:复制分布表在每个节点上的本地数据都是一份完整的拷贝,查询该表数据时在任意节点上都能单独完成,不需要从其他节点获取数据。复制分布一般用于数据量不是很大的表。
  • 范围分布:范围分布按照表定义中指定的一个或多个列的列值范围分布项,决定将一行数据存储到 MPP 的哪个相应 EP 上。
  • LIST 分布:LIST 分布通过指定表中的一个或多个列的离散值集,来确定将一行数据存储到 MPP 的哪个相应 EP 上。此分布用于表中列值可列举的情况。

建议
DM MPP同时支持数据分布与分区表,实现了“数据分布后再分区”。在数据分布到各节点的基础上,再在单个节点上将数据再次分区,可进一步提高查询性能。分布的类型和分区的类型可以混合搭配,比如建立哈希分布表的范围水平分区表。

用户应根据应用中查询的实际需求来确定表的分布类型,进而得到较优的并行执行计划。

  • 场景一:在某应用中,查询语句中包含大量连接查询,表数据分布较为均匀,应用对查询的效率要求较高。此时我们可以使用哈希分布,并且将常用连接列作为哈希分布列,这样能尽可能地减少 EP 间的数据传递,少占用网络带宽,减少网络延迟,充分发挥多节点并行执行的巨大优势。
  • 场景二:在某应用中,查询以单表查询居多,连接查询较少,我们可以采用随机分布。随机分布使得海量数据能均匀分布,充分体现 MPP 的并行优势。
  • 场景三:对于单表查询或出现在连接查询中数据量较小的表,可采用复制分布。复制分布的表在每个 EP 上都有一份完整的数据拷贝,使得在生成并行执行计划时能减少对应通讯操作符的使用,进一步优化并行计划。

三、共享存储集群

1、系统架构

DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。共享存储数据库集群是一个多实例、单数据库的系统,多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。

DMDSC 集群主要由数据库和数据库实例、共享存储、DMASM 或 DMASM 镜像、本地存储、通信网络、集群控制软件 DMCSS、集群监视器 DMCSSM 组成。下图展示了一个 DMDSC 集群系统结构图。

3.png

2、系统特性

DMDSC 的主要特点包括:

  • 高可用性:只要集群中有一个活动节点,就能正常提供数据库服务。此外,当出现磁盘损坏或数据丢失时,既可以利用其他镜像副本继续提供数据库服务,又可以使用其他镜像副本进行数据恢复。
  • 高吞吐量:多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
  • 负载均衡: 一方面,通过巧用服务名,用户的连接请求被平均分配到集群中的各个节点,确保连接负载平衡;另一方面,条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现数据负载均衡。

四、读写分离集群

读写分离集群是基于即时归档或实时归档实现的高性能数据库集群,不但提供数据保护、容灾等数据守护基本功能,还具有读写操作自动分离、负载均衡等特性。读写分离集群最多可以配置 8 个即时备库或 8 个实时备库,提供数据同步、备库故障自动处理、故障恢复自动数据同步等功能,也支持自动故障切换和手动故障切换两种守护模式。一般情况下,应用系统中查询等只读操作的比例远大于 Insert/Delete/Update 等 DML 操作,修改对象定义等 DDL 操作的比例则更低。但是,这些操作往往混杂在一起,在高并发、高压力情况下,会导致数据库性能下降,响应时间变长。借助读写分离集群,将只读操作自动分发到备库执行,可以充分利用备库的硬件资源,降低主库的并发访问压力,进而提升数据库的吞吐量。读写分离集群不依赖额外的中间件,而是通过数据库接口与数据库之间的密切配合,实现读、写操作自动分离特性。DM 的 JDBC、DPI、DCI、ODBC、Provider 等接口都可以用来部署读写分离集群。根据是否满足读提交事务隔离级特性,读写分离集群可以配置为事务一致模式和高性能两种模式。简单的说,事务一致模式下,不论一个 Select 语句是在备库执行、还是在主库执行,其查询结果集都是一样的。高性能模式则不能保证查询是一致的,备库的数据与主库的数据同步存在一定的延迟,当 Select 语句发送到备库执行时,返回的有可能是主库上一个时间点的数据。

读写分离集群由一个主库以及一个或者多个配置了即时(Timely)归档或实时(Realtime)归档的备库组成,其主要目标是在保障数据库可用性基础上,实现读、写操作的自动分离,进一步提升数据库的业务支撑能力。读写分离集群通过配置事务一致模式保证主、备库数据一致性,并配合达梦数据库管理系统的各种接口(JDBC、DPI 等),将只读操作自动分流到备库,有效降低主库的负载,提升系统吞吐量。达梦读写分离集群通过DM 数据守护(DM Data Watch)完成,数据守护是一个独立的守护进程,其实现原理是将主库(生产库)产生的 Redo 日志传输到备库,备库接收并重新应用 Redo 日志,从而实现备库与主库的数据同步。DM 数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,为 Redo 日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。

五、分布式计算集群

达梦分布式计算集群是一款分布式数据库,关注和解决的是大数据、高可用和集群规模能够动态扩容、缩容的业务场景。

主要技术指标有:

  • BP 上的最大存储空间为 PB 级;
  • 最大 SP 组和 BP 组总数为 1024;
  • 最大的 RAFT 组数(包括 MP/SP/BP)为 1024;
  • 最大的实例数(包括 MP/SP/BP)为 4096;
  • 最大副本数为 9;
  • 最大表空间组个数 65534;
  • 一个表空间组中的最大表空间个数 1536;
  • 其它指标和普通单机数据库一样。

1、集群架构

达梦分布式计算集群由计划生成节点 SP 和 数据存储节点 BP 及元数据管理节点 MP 组成。

4.png

计划生成节点

SP 为 DMDPC 集群中对外提供数据库服务的节点,负责接收用户请求并生成计划、划分子计划、按照一定规则计算并行度并调度各个子计划,并最终将执行结果返回给用户。对于一次客户端请求任务来说,客户端连接的 SP 负责生成、划分并调度计划,其它的 SP 和 BP 负责执行计划。

SP 的实现是在已有的成熟达梦单机数据库处理框架的基础上新增了分布式计算处理。因此 SP 具备以下特征:

  • 完整的 SQL 标准支持:包括复杂关联查询、存储过程、视图、序列等某些分布式数据库难以支持的特性。
  • SP 节点自身无状态:每个 SP 节点上不存储任何数据字典信息和用户数据,一个集群中可以存在多个 SP 节点。连接上任何一个 SP 节点都可以获得完整的数据库服务。
  • SP 具备子计划的执行能力:因为 SP 和 BP 是由同一套代码编译出来的,只是不同的启动参数决定了担任不同的角色,所以 SP 和 BP 一样具有操作符的执行能力。例如,从资源均衡利用和计算存储分离角度来考虑,DMDPC 将部分子计划安排在 SP 上执行。
  • 支持动态增删节点。

数据存储节点

数据存储节点,英文全称为 Backend Processor,简称为 BP。

BP 为 DMDPC 集群中数据实际存储的节点,负责存储数据和接收 SP 的子任务调度指令,执行子任务,并返回结果给 SP。

一个 DMDPC 集群可配置多个 BP 节点同时提供服务,且可以随着用户业务量变化动态增删 BP 节点。为了保障 BP 节点能够持续提供服务,每一个 BP 节点又可以配置成一个 BP 多副本系统。

元数据服务器节点

元数据服务器节点,英文全称为 Metadata Processor,简称为 MP。

MP 为 DMDPC 集群中提供元数据服务(即字典信息服务)的节点。所有 DDL 请求都会经过 SP 转发给 MP 执行,元数据信息全部存储在 MP。

一个 DMDPC 集群只能配置一个 MP 节点提供服务。为了保障 MP 节点能持续提供服务,MP 节点可以配置成一个 MP 多副本系统。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服