-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Fully Compatible
-
Execution Team 2021-08-23, Execution Team 2022-05-02, Execution Team 2022-05-16, Execution Team 2022-05-30, Execution Team 2022-06-13
-
(copied to CRM)
The single-threaded TTL Monitor can get "stuck" deleting large ranges of documents on specific collections or databases.
This prevents the TTL monitor from performing deletes on higher-priority collections such as config.system.sessions.
We should consider imposing configurable per-database and per-collection document deletion limits. In addition, we will need to consider significantly lowering the default TTL pass interval (from 60 seconds) to ensure we make progress.
Some hypothetical limits would be:
- Maximum 10000 documents per database
- Maximum 1000 documents per collection
- Run TTL monitor every 5 seconds.
Also consider prioritizing important collections like config.system.sessions.
- depends on
-
SERVER-63040 Batch TTL deletions
- Closed
-
SERVER-66210 BatchedDeleteStage doesn't indicate when completion is caused by pass targets
- Closed
- is related to
-
SERVER-66655 Update Storage Execution Arch Guide with new TTL Behavior
- Closed
-
SERVER-66537 Combine BatchedDeleteStage<Batch/Pass>Params
- Closed
-
SERVER-94647 Make TTL deletes prioritize internal collections
- Closed
- related to
-
SERVER-71290 configure ttlIndexDeleteTargetTimeMS in TTLTest
- Closed
-
SERVER-66898 Update permalinks in TTLMonitor Arch guide section
- Closed
-
SERVER-56195 Make TTL monitor multi-threaded
- Backlog