2

RavenDB 如何处理数据的分片重新平衡/重新分配?

var shards = new Dictionary {
{"Asia", new DocumentStore {Url = "http://localhost:8080"}},
{"Middle East", new DocumentStore {Url = "http://localhost:8081"}} ,
{"美国", new DocumentStore {Url = "http://localhost:8082"}},
};

例如,在上面摘自他们的教程的摘录中,包含亚洲的服务器受到影响,因为仅中国就有超过 1B 人。所以我需要将这些数据在 Asia1(中国)和 Asia2(其余)之间拆分。重新平衡现有数据的最佳方法是什么?

我是否需要查询原始文档存储中的所有亚洲并手动将它们移动到新分片?有更快的方法吗?这样的努力会涉及一些停机时间吗?是否需要重建新索引?

4

1 回答 1

0

Alwyn,通常情况下,您将添加一个 Asia-2 服务器,并更改您的分片功能以在 Asia-2 服务器中创建所有新的亚洲项目。您可以通过覆盖 ShardResolutionStrategy 中的 GenerateShardIdFor 来做到这一点。它不需要停机时间或任何新索引。

于 2012-12-09T12:31:04.570 回答