mongo 文件 TTL 后块不删除

mongo chunk not delete after documents TTL

mongo 配置信息:

问题描述

TTL 配置工作正常,超时时自动删除文档。 但是配置数据库中的块没有更新(删除),随着文档的消失,块仍然存在。

例如: 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 分片集群不平衡 属性。我认为平衡器对分发的实际文档并不理想,并且基于错误块无法正确工作。

我找了很多没有解决办法。任何人都可以帮忙吗?谢谢。

MongoDB 中的块范围在其中包含的文档被删除时不会消失。将块范围想象成水桶,即使您倒空了水桶中的水,水桶本身仍然存在。块非常相似。它们在填满时会分裂以支持更好的平衡,但在清空时它们不会自动消失。

如果您想要 "get rid" 这些区块,您必须合并它们。您可以在 MongoDB Docs.

中找到有关使用 mergeChunks 命令合并块的更多信息