背景

数据库节点的单机处理能力是有限的,而ShardingSphere提供了数据分片的能力,可以将数据分散到不同的数据库节点上,提升了整体的处理能力。

但对于已经使用单机数据库运行的业务来说,如何安全简单地把数据迁移至新的分片上,一直以来都是一个迫切的需求。

同时,对于已经使用了ShardingSphere的用户来说,业务规模的快速变化,也可能导致单一数据库分片甚至整体分片集群达到处理瓶颈。

如何对现有的分片集群进行弹性的伸缩,同样也是一个迫切需求。

简介

Sharding-Scaling是一个提供给用户的通用的ShardingSphere数据接入迁移,及弹性伸缩的解决方案。

4.1.0开始向用户提供。

结构总揽

挑战

ShardingSphere在分片策略和算法上提供给用户极大的自由度,但却给弹性伸缩造成了极大的挑战。如何找到一种方式,即能支持各类不同用户的分片策略和算法,又能高效地将数据节点进行伸缩,是弹性伸缩面临的第一个挑战;

同时,弹性伸缩过程中,不应该对正在运行的业务造成影响,尽可能减少伸缩时数据不可用的时间窗口,甚至做到用户完全无感知,是弹性伸缩的一个大挑战;

最后,弹性伸缩不应该现有的数据造成影响,如何保证数据的可用性和正确性,是弹性伸缩的第三个挑战。

目标

支持各类用户自定义的分片策略,减少用户在数据伸缩及迁移时的重复工作及业务影响,提供一站式的通用弹性伸缩解决方案,是ShardingSphere弹性伸缩的主要设计目标。

状态

当前处于alpha开发阶段。

路线图