RavenDB和shard重新平衡

时间:2012-12-07 16:15:42

标签: nosql ravendb sharding

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

  

var shards = new Dictionary {
  {“Asia”,new DocumentStore {Url =“http:// localhost:8080”}},
  {“中东”,新的DocumentStore {Url =“http:// localhost:8081”}},
  {“America”,new DocumentStore {Url =“http:// localhost:8082”}},
  };

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

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

1 个答案:

答案 0 :(得分:0)

阿尔文, 通常情况下,您将添加一台Asia-2服务器,并更改您的分片功能,以便在Asia-2服务器中创建所有新的亚洲项目。 您可以通过在ShardResolutionStrategy中重写GenerateShardIdFor来实现。 它不需要停机或任何新索引。