扩容后数据库分片迁移工具

背景

目前 OpenMLDB 在扩缩容以后,需要执行一系列的命令,来进行手动的数据分片迁移。其过程相当繁琐,并且容易出错。相关操作的文档见:https://openmldb.ai/docs/zh/main/maintain/scale.html 。在本任务中,你将会设计更加友好的独立数据库分片迁移工具,实现一键的手动或者自动化分片迁移。

编程语言

Python, Shell 或者其他语言均可

实现方案

参照现有的扩容运维方案 https://openmldb.ai/docs/zh/main/maintain/scale.html,完成如下两个任务(注意,本任务优先考虑扩容场景):

  1. 串联目前的手动扩容的命令,以及分片迁移命令,整合成一个友好的一键化扩容工具。该工具需要整合功能包括:(1)新节点加入;(2)通过指定的需要迁移的分片和迁移节点目标,实现分片迁移
  2. 基于上述手动迁移工具,进一步增加自动迁移功能。即通过相关的策略(比如选择内存占用最多的分片),用户不再需要指定迁移的分片和目标,工具自动选择合适的分片,进行迁移,实现扩容以后分片部署自动再平衡。 注意,为了方便实现,你可以假设节点之前支持 SSH 免密登录。

    GitHub Issue

    https://github.com/4paradigm/OpenMLDB/issues/2038