我从我的收藏中删除了所有文件
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
这是否意味着它们是空的块?
就像下次我在同一个集合中插入文档一样,它会使用相同的块配置吗?
答案 0 :(得分:0)
是的,这意味着有空的块。块((分片键值的范围或分片键值的哈希值)保留了删除文档之前的状态。如果重新插入文档,它们将被放在包含块的分片上,该块包含分片键值的(散列)值。 MongoDB不会自动合并块。所有这些信息都与MongoDB 2.6相同。处理空块的方法将来可能会改变。
MongoDB手册包含有关手动merging chunks的说明。