-
Type:
New Feature
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Hook into CursorManager::timeoutCursors to check for memory load shedding at the same 4s frequency that we check for timeouts. The challenges here revolve around the lack of opCtx:
- No opCtx in the sweep → kill the cursor directly (dispose / executor->markAsKilled(QueryMemoryLimitExceeded)), like timeout does, rather than opCtx->markKilled.
- dt = sweep cadence (clientCursorMonitorFrequencySecs, ~4 s) and shedProbability caps dt at 1 s, so idle cursors would under-shed unless we give this path its own interval/cap; seed lastShedEvalTime when the cursor goes idle.
- The roll runs under the partition lock — keep the disabled/below-low-mark short-circuit so it's ~free when healthy; dispose already defers outside the lock.
- mongos idle cursors live in ClusterCursorManager (the SERVER-131578 router gap), separate from this.
- is related to
-
SERVER-131578 Extend query memory load shedding to routers/mongos
-
- Backlog
-