MongoDB TTL过期检查的更改期限

时间:2018-06-27 11:13:49

标签: mongodb

关于基于TTL索引MongoDB documentation的文档到期说:

  

删除过期文档的后台任务每60秒运行一次。结果,在文档到期和运行后台任务之间的一段时间内,文档可能会保留在集合中。

是否可以通过配置更改该时间段?还是用mongod代码硬接线?

1 个答案:

答案 0 :(得分:1)

到目前为止,这是不可能的,但是已经在MongoDB JIRA中进行了跟踪:

  • SERVER-6712使TTL收集后台任务时段由用户定义(命令行选项)
  • SERVER-8616向TTL收集线程添加可调参数
  • SERVER-13937允许为TTL监视器设置窗口和间隔

还有一种解决方法-您可以手动打开和关闭TTL监视器:

db.adminCommand({setParameter: 1, ttlMonitorEnabled: false});
db.adminCommand({setParameter: 1, ttlMonitorEnabled: true});

编辑:事实证明,有一个ttlMonitorSleepSecs标志。例如here,但官方文档中未提及。

db.adminCommand({setParameter: 1, ttlMonitorSleepSecs: 60});