分布式数据库中间件实现原理之平滑扩容


官网正在进行一系列的体验活动,了解更多详情请移步官网看看大大大福利~~


各种配置太麻烦? 轻轻的点击下图,试试一键式免费开通DDM实例

DDM1.PNG

平滑扩容

平滑扩容是一种水平扩容方式,通过增加RDS实例的数量来提升总体数据存储容量,把分库平滑扩容到新增加的RDS实例上,保证所有的数据都是均衡分布在每个分库上。

随着业务增长,逻辑库存储空间不足,并发压力较大,可以通过增加RDS实例来提高数据存储能力与并发支持能力,对DDM实例逻辑库进行平滑扩容,详细配置请参见逻辑库平滑扩容

逻辑库扩容涉及到数据迁移。具体分以下情况:


  • 所有全局表将复制一份,存储到新增RDS实例的对应分片中。

  • 分片表数据将会重新分配和存储。

  • 单表存储在默认分片上,扩容过程无需迁移单表数据。

 说明:
  • RDS存储空间不足时,建议对逻辑库下的某一RDS实例进行磁盘扩容,扩充RDS实例存储空间,详细操作请参见磁盘扩容

  • “拆分算法”为“Range”的逻辑表在进行平滑扩容时,只在新的分片上创建物理表,不做数据迁移。扩容成功后,用户需要手动修改“Range”表的分片规则,加入新分片的规则。


平滑扩容请遵循如下规则:

  • RDS实例与DDM实例需要在相同VPC,且RDS实例没有被其它DDM实例使用。

  • 逻辑库下必须有表才能进行平滑扩容。

  • 实例存在节点故障情况下不能进行扩容。

  • 在最终一致性和强一致性的事务模型下不允许逻辑库扩容。

  • 一个DDM实例内,只允许同时对一个实例逻辑库进行平滑扩容操作;不同的DDM实例内,可以同时扩容实例逻辑库。

  • 不允许使用正在扩容中的RDS实例进行建库建表操作。

  • 最多仅支持扩容50个RDS实例。

  • 扩容最大规格为:

    每个分片不超过20张表。

    每张表不超过800万数据。


平滑扩容原理如下图所示。

图1 平滑扩容原理