将集合/块固定到特定的分片/节点

时间:2012-06-27 12:45:55

标签: mongodb sharding

MonogDB的自动分片将集合或块(即集合的一部分)分发到不同的节点/分片。是否可以配置哪些节点用于特定的集合或块?

实施例: 假设我们有集合C1,C2和C3以及节点/分片N1,N2。

是否可以以C1始终存储在N1上的方式配置分片?

是否可以以C3的块A总是存储在N1上的方式配置分片?

我知道密钥范围存储在特殊的配置数据库中,并且平衡器进程会修改此数据以分配负载。但是,手动修改此数据是否安全?

2 个答案:

答案 0 :(得分:0)

强烈建议自行编辑配置数据。你最终可能会破坏数据库。

无法将碎片固定到碎片上。它被称为自动分片,原因是:)

理论上,您可以关闭平衡器,将数据移动到您想要的位置并修改块配置。但在这种情况下,您无法打开自动平衡(或者它会移动您的“固定”块)。

目前,所有未加密的集合都驻留在数据库的主分片上。所有分片集合均匀(或多或少)分布在所有分片上。关于将未加密的集合移动到其他分片有a ticket,但是不清楚它何时(或是否)将被实现。

答案 1 :(得分:0)

我遇到了同样的问题,并没有找到明确的解决方案,但似乎10Gen正在朝着这个方向做点什么:

https://jira.mongodb.org/browse/SERVER-4621 还有这个: https://jira.mongodb.org/browse/SERVER-939

第二个应于11月到期,所以我想我们可能会在2.6版本中看到这一点。