Shard

shard是keyspace中的一个mysql集群。分片通常包含一个MySQL主服务器和许多MySQL从服务器。

分片中的每个MySQL实例都具有相同的数据(复制延迟情况除外)。从库可用于提供只读流量(最终一致性保证)、执行长时间运行的数据分析工具或执行管理任务(备份,恢复,数据差异对比等等)。

unsharded keyspace实际上只有一个分片。 Vitess按照惯例命名shard为“0”。分片时,keyspace有”N”个非重叠数据分片。

Resharding

Vitess 支持动态拆分,在线上群集实施更改分片数量。这可以是将一个或多个分片分成更小的分片,或者将相邻的分片合并为更大分片。

在动态拆分期间,源分片中的数据将复制到目标分片中,开启过滤复制追平数据差异,然后与原始分片进行比较以确保数据完整性。接下来,将实时服务基础结构转移到目标分片,并删除源分片。