达梦分布式集群DPC_架构详解
- 1 DPC核心架构介绍
- 1.1 架构图
- 1.2 DPC核心架构组件
- 2 多副本
- 2.1 多副本架构图
- 2.2 多副本示例
- 2.3 RAFT组概念
- 2.4 表空间与RAFT组的关系
1 DPC核心架构介绍
1.1 架构图
1.2 DPC核心架构组件
DMDPC 架构由三部分组成
SP(SQL Processor):计算节点
MP(Metadata Processor):元数据节点
BP(Backend Processor):数据存储节点
SP
①对外提供分布式数据库服务,用户可以登录到任意一个 SP 节点,获得
完整的数据库服务;
②不存储数据,所以SP都是单机,可以横向扩展(多个SP节点),不能多副本;
BP
①负责存储表真实数据,一般是多副本;
②执行 SP 的调度指令并将执行结果返回给 SP;
MP
①负责存储元数据(表结构等信息),一般是多副本;
②向 SP、BP 提供元数据服务;
2 多副本
2.1 多副本架构图
2.2 多副本示例
DPC基于 RAFT 协议实现了一套全新的达梦多副本(DM Multiple Copy)系统架构。
类似于主备系统,主库挂了备库能立即切换为主,实现高可用性;
例如:
①单机架构
服务器1 | 服务器2 | 服务器3 | 服务器4 |
---|---|---|---|
SP | MP | BP1 | BP2 |
这里举个例子:
一个分区表TEST,通过ID列做HASH分区,分成5个子表,建表语句为:
create table TEST(
"ID" INT,
"NAME" VARCHAR2(20),
)
PARTITION BY HASH("ID")
PARTITIONS 5;
如果把5个子表分配到5个BP上,那么通过ID列去查询数据时,就能利用5台服务器资源;
Ⅱ.单机架构MP和BP都只有一份数据,如果其中一个节点发生故障,整个集群就不能正常提供服务,所以可以部署多副本架构,给MP和BP1,BP2都新增两个副本;
②多副本架构
服务器1 | 服务器2 | 服务器3 | 服务器4 |
---|---|---|---|
SP | MP | BP1 | BP2 |
MP_备1 | BP1_备1 | BP2_备1 | |
MP_备2 | BP1_备2 | BP2_备2 |
2.3 RAFT组概念
拥有相同数据的一个或多个节点共同构成一个 RAFT组。RAFT 组中的节点个数为奇数。
当 RAFT 组中只有 1 个节点时,则该节点称为单副本系统(单机)。
例如
①比如上述例子中的的BP1,BP1_备1,BP1_备2就构成一个RAFT组(MP和BP2同理),它们数据完全一致,一个RAFT组内的实例数据完全相同;
②一个RAFT组内只有一个为主库提供服务;
③类似于一个RAFT组 = 一个主备系统(RAFT内是异步同步);
2.4 表空间与RAFT组的关系
每个表空间必须关联一个RAFT组,创建时指定存储位置。
相当于表空间要指定存储在哪个BP上
例如
CREATE TABLESPACE TS_1 DATAFILE 'TS_1.DBF' SIZE 128 STORAGE(ON RAFT_1);
--表空间TS_1存储在RAFT_1上(BP1上);
CREATE TABLESPACE TS_2 DATAFILE 'TS_2.DBF' SIZE 128 STORAGE(ON RAFT_2);
--表空间TS_2存储在RAFT_2上(BP2上);
后续建表时,才能每个子表单独指定不同的表空间,实现数据分布在多台BP上(不同数据节点上)
CREATE TABLE "TEST01"
(
"ID" VARCHAR2(36) NOT NULL,
"DATE" TIMESTAMP(0) NOT NULL)
PARTITION BY HASH("ID")
(
PARTITION "DMHASHPART0" STORAGE(ON "TS_1") ,
PARTITION "DMHASHPART1" STORAGE(ON "TS_2")
) STORAGE(HASHPARTMAP(1), ON "TS_1") ;
更多其他数据库相关专栏:
数据库性能优化(sql优化)_基本思路_yxy
数据库性能优化(sql优化)_索引详解01_yxy(共4篇)
数据库性能优化(sql优化)_SQL执行计划01_yxy(共3篇)
数据库性能优化(sql优化)_统计信息_yxy