-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Integration
-
None
-
None
-
None
-
None
-
None
-
None
-
None
CurOp includes two notions of an operations duration: the wall clock durationMillis and workingTimeMillis, which subtracts out any time the operation spent blocking. It does this subtraction via two mechanisms:
- Calculating how much time has elapsed while the op was "paused" via CurOp::pauseTimer
- Subtracting out the queueing time of a few hard-coded queues/locks
Because the latter operates on a hard-coded queue, any new queues we introduce will not automatically be subtracted (see SERVER-130992 for an example). Notably, the slow query logging does use the queue registry, so any new queues end up there.
We should remove explicit references to ExecutionAdmissionContext from this timekeeping and instead use the queue registry to ensure all are covered in the future.
As part of this, we should also reevaluated whether we need CurOp::pauseTimer, or if the current uses could be represented via their own queues.
- is related to
-
SERVER-130992 IngressRequestRateLimiter should pause workingTime measurement during queueing
-
- Closed
-