从MongoDb中删除文档,但sh.getShardDistribution()命令仍显示每个碎片上可用的块

时间:2014-12-12 10:55:33

标签: mongodb sharding chunks

我从我的收藏中删除了所有文件

mongos> db.myCollectioName.remove({});
WriteResult({ "nRemoved" : 88517 })
mongos>

但是当我运行以下命令时,它显示每个碎片块<5>

mongos> db.myCollectioName.getShardDistribution();

Shard shard0 at shard0/some_ip1:some_port,some_ip2:some_port,some_ip3:some_port

data : 0B docs : 0 chunks : 5
estimated data per chunk : 0B
estimated docs per chunk : 0

Shard shard1 at shard1/some_ip1:some_port,some_ip3:some_port,some_ip3:some_port
data : 0B docs : 0 chunks : 5
estimated data per chunk : 0B
estimated docs per chunk : 0

Totals
data : 0B docs : 0 chunks : 10
Shard shard0 contains NaN% data, NaN% docs in cluster, avg obj size on shard : NaNGiB
Shard shard1 contains NaN% data, NaN% docs in cluster, avg obj size on shard : NaNGiB

这是否意味着它们是空的块?

就像下次我在同一个集合中插入文档一样,它会使用相同的块配置吗?

1 个答案:

答案 0 :(得分:0)

是的,这意味着有空的块。块((分片键值的范围或分片键值的哈希值)保留了删除文档之前的状态。如果重新插入文档,它们将被放在包含块的分片上,该块包含分片键值的(散列)值。 MongoDB不会自动合并块。所有这些信息都与MongoDB 2.6相同。处理空块的方法将来可能会改变。

MongoDB手册包含有关手动merging chunks的说明。