【问题标题】:mongo chunk not delete after documents TTL文件TTL后mongo块不删除
【发布时间】:2017-06-07 10:52:06
【问题描述】:

mongo 配置信息:

  • mongo 版本:3.2.10
  • mongo 分片,密钥为:{secretTaskId:1, time: 1}
  • TTL 索引:{time: 1}, {expireAfterSeconds: 60 * 60 * 24 * 8, background: true} # 8 days
  • mongo 平衡器已启用并正在运行:sh.isBalancerRunning() ===> true

问题描述

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

经过大量搜索,我没有找到解决方案。任何人都可以帮忙吗?谢谢。

【问题讨论】:

    标签: mongodb chunks


    【解决方案1】:

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

    如果你想“摆脱”这些块,你必须合并它们。您可以在MongoDB Docs 中找到更多关于使用mergeChunks 命令合并块的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 2016-04-20
      • 1970-01-01
      • 2016-08-03
      • 2019-10-06
      • 1970-01-01
      相关资源
      最近更新 更多