DolphinDB 数据迁移与再平衡

时间:2021-10-21 01:00:45

数据迁移再平衡的目标是保证分区副本尽可能均衡分布,副本位置影响着 IO 性能、节点负载,对于数据访问延迟有着较大的影响。近来,越来越多的客户对于数据容量或计算性能提出了更高要求,因而进行了集群扩展,扩展之后如何在新的拓扑之中平衡数据,这是客户必然面临的问题。为此,我们撰写了本文,总结数据迁移再平衡的常见场景与方法。

本教程适用于1.30.17、2.00.5及以上版本。

1 概述

DolphinDB 集群支持扩展节点与存储,以便增强计算能力与数据容量,那么新增的节点与磁盘是没有存储任何数据的,所有数据依旧存储在旧的节点与磁盘。也就是说,不同节点或不同磁盘上的数据分布可能会存在较为严重的倾斜,这样可能会带来几个问题:

  • 分布式查询计算子任务无法分配到新增的节点,导致该节点计算资源无法被充分利用;

  • 旧的磁盘 IO 压力过大,新增的磁盘 IO 无法被充分利用。

再者,数据依旧存储在旧的磁盘,如果旧的数据库分区存在数据写入或更新,那么旧的磁盘空间占满的几率相对较大,一旦满了会引发多种问题。

所以,节点与存储变更之后的数据迁移与平衡便显得非常必要。后面章节中,将会重点介绍节点与磁盘变更之后的数据迁移与平衡。

2 环境配置与数据模拟

2.1 硬件配置

测试总共使用三台配置相同的服务器,分别命名为 P1、P2、P3,具体硬件配置如表所示。

处理器

核数

内存

操作系统

硬盘

Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz

64

512 GB

CentOS Linux release 7.9

SSD