2

我们在生产中使用 tarantool 数据库(使用 vshard 分片)。我们直接从 4 个分片开始。现在我们想在不停机的情况下将其增加到 6。但是,在再添加两个分片后,重新平衡器就会启动,它不允许读取/写入发生。有什么办法可以支持各种操作的再平衡?我们有能力增加手术时间。但这应该是成功的。将分片添加到 tarantool 的最佳实践是什么?

目前,我们能想到的唯一解决方案是进入维护模式并让重新平衡以尽可能短的时间完成!!!

4

1 回答 1

1

您不能写入当前正在传输的存储桶,但您不能写入其他存储桶(所以它不像整个分片被锁定)。

此外,您可以通过 - 使存储桶更小(增加 bucket_count) - 使重新平衡变慢以减少同时传输的存储桶(重新平衡器配置)来减轻影响。

假设你有 16384 个桶,你的数据集是 75GB。这意味着平均桶大小约为 5 Mb。如果您将 rebalancer_max_receiving 参数减少到 10,您将只有 10 个桶 (50Mb) 被同时传输(这使得他锁定写入)。

这样,重新平衡将非常慢,但是,鉴于您的客户端可以执行重试并且您的分片之间的网络足够快,“写锁定”效应应该完全被忽视。

于 2019-06-07T12:11:25.180 回答