TTL配置正常工作,文档在超时时自动删除。 但是配置数据库中的块没有更新(删除),文件消失后仍然存在块。
e.g。 :
js
// chunks in config database
// As the date is 2017-06-07 now, documents create in 2016 had removed, but the chunks for them are still remain. ( more old chunks can be found, not single.)
{
"_id": "****",
"lastmod": Timestamp(3, 0),
"lastmodEpoch": ObjectId("58253bbffbb3d96a85eccef1"),
"ns": "***",
"min": {"secretTaskId": "***", "time": ISODate("2016-11-11T03:32:40.045Z")},
"max": {"secretTaskId": "***", "time": ISODate("2016-11-14T09:20:45.684Z")},
"shard": "***"
}
由于没有删除块,mongo分片群集不是balance属性。我认为平衡器对于分发的实际文档并不理想,并且基于错误块没有正确工作。
答案 0 :(得分:0)
删除包含在其中的文档时,MongoDB中的块范围不会消失。将大块范围视为水桶,即使您从水桶中清空水,水桶本身仍然存在。块很相似。当它们填满以支持更好的平衡时,它们会分裂,但它们在清空时不会自动消失。
如果你想“摆脱”这些块,你必须合并它们。您可以使用MongoDB Docs中的mergeChunks
命令找到有关合并块的更多信息。