-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
Fully Compatible
-
Storage Execution 2026-11-09
-
200
-
None
-
None
-
None
-
None
-
None
-
None
-
None
The in-flight batch signal is POA's main backpressure signal: the dispatcher blocks when the dispatched-but-unpopped in-flight batch count or their total bytes of ops exceed a threshold (e.g., 1 GB of in-flight ops). Since a batch is only popped from the inflight FIFO once all of its workers complete, a single slow worker naturally holds its batches in the FIFO queue. Tracking bytes alongside the count also bounds the total memory held by dispatched-but-unapplied ops. A per-worker queued-bytes cap (SERVER-134753) complements this as a stopgap against a single worker concentrating memory while the total stays under the global cap.
This ticket should include:
- A threshold server parameter (IDL) for the max in-flight batches, with the dispatcher blocking when the FIFO length exceeds it.
- A threshold server parameter (IDL) for the max in-flight bytes, incremented by the batch's total op size at dispatch and released when the advancer pops the batch, with the dispatcher blocking when the total exceeds it.
- is related to
-
SERVER-137917 Release the POA backpressure wait on shutdown-related abandonment
-
- Backlog
-
-
SERVER-138220 Fix POA backpressure log statement mixing size_t and uint64_t in std::min
-
- Closed
-
-
SERVER-134753 Add maximum byte limit for POA worker queues
-
- In Code Review
-
- related to
-
SERVER-135581 Add tunable server parameters for the pipelined oplog applier
-
- Open
-