Изменить период проверки истечения TTL MongoDB - PullRequest
0 голосов
/ 27 июня 2018

Что касается срока действия документа, основанного на индексе TTL Документация MongoDB говорит:

Фоновая задача, которая удаляет просроченные документы, запускается каждые 60 секунд. В результате документы могут оставаться в коллекции в течение периода между истечением срока действия документа и выполнением фоновой задачи.

Есть ли способ изменить этот период по конфигурации? Или это зашито в коде mongod?

1 Ответ

0 голосов
/ 27 июня 2018

На сегодняшний день это невозможно, но уже отслежено в 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. Это упоминается, например, здесь , но не упоминается в официальных документах.

db.adminCommand({setParameter: 1, ttlMonitorSleepSecs: 60});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...