目前各分布式数据库均宣称支持动态节点扩容和缩容,大家在主流分布式数据库是否进行过动态扩容和缩容操作,实施过程是否有什么问题,尤其是动态缩容操作,个人感觉相对难度较大点。
收起分布式数据库均宣称支持动态节点扩容和缩容,大家在主流分布式数据库是否进行过动态扩容和缩容操作,实施过程是否有什么问题,尤其是动态缩容操作,个人感觉相对难度较大点。
解读要求:
1、支持动态的扩容缩容:要求做到动态实现,也即数据分片的数量是可以动态调整的。
2、无服务影响的扩容缩容:动态扩容缩容时,不能中断业务系统的数据服务。
实现技术:
1、思路之一:不改变数据分片的数量,且只腾挪数据分片的存储位置,支持动态扩容缩容服务器节点,例如:腾讯TDSQL、热璞数据库HotDB等支持此模式,可以有效规避软件出现Bug缺陷的数据错乱风险。
2、思路之二:改变数据分片的数量,且按数据分片颗粒度腾挪数据分片的存储位置,支持动态扩容缩容服务器节点,例如: 阿里云PolarDB-X、华为云GaussDB、腾讯TDSQL、热璞数据库HotDB等支持此模式,无法做到规避软件出现Bug缺陷的数据错乱风险。
3、思路之三:改变数据分片的数量,且按数据存储块颗粒度 数据分片的存储位置,支持动态扩容缩容服务器节点,例如: TiDB、OceanBase等支持此模式,无法做到规避软件出现Bug缺陷的数据错乱风险。
4、小结:
4.1 思路之一的颗粒度是最大的、思路之二的颗粒度是中等的、思路之三的颗粒度是最小的;
4.2 思路之一功能实现是无风险的、思路之二功能实现是有风险的的、思路之三功能实现是风险最大的;
4.3 思路之三有存储介质依赖,思路之一、思路之二无硬件设备依赖。