阿里云DRDS的平滑扩容的局限

drds虽然看上去和hbase等一样宣称,可以方便的地scale out,当发现集群里的数据不够存了,加几个实例进来即可。Hbase是要加region server(其实也是加Hadoop的DataNode),DRDS是要加RDS实例,也就是mysql的数据库实例。但实际使用中发现DRDS的平滑扩容并不是原来想象的那样有若干新实例加进来,数据会自动(或者人工干预后)在所有的数据节点间比较均匀的再分配。

平滑扩容

原因就是DRDS的分库策略。在DRDS的使用中可以看出,drds建分库时,不用指定目标分库数,但是分库函数会自动把分库列上的取值映射成指定个数的分库。这个指定个数就是rds实例数*8。

这就是该表的分库策略,创建表后,不能修改。

后面平滑扩容的时候,再有rds实例加进来,只会把原有rds实例上的分库选择性的剪切到新的加入的rds上。Drds总的分库数也不会增加。?

如果我的目标是160个分库,只能建表的时候就申请20个rds,创建160个分库。不能前期创建8个实例,40个分库,然后试图通过平滑扩容来扩展增加实例数,进而增加分库数。

平滑扩容只是对分库进行调整,不会为了更新分库函数的目标数,对表里的所有数据重新计算映射。

如果要这么干,只有再借用一个drds集群,重新创建分库分表策略,把原有集群的数据导进来,这看上去是一个费劲费钱的动作。

 

原创文章。为了维护文章的版本一致、最新、可追溯,转载请注明: 转载自idouba

本文链接地址: 阿里云DRDS的平滑扩容的局限


, , , , ,

No comments yet.

发表评论