-
Type: New Feature
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Workload Scheduling
-
Fully Compatible
-
v8.0
-
200
The existing SemaphoreTicketHolder implementation uses timed waits in order to support interruptibility, which risks convoy effects when we have a large number of waiters. SERVER-86461 attempted to alleviate this concern by introducing jitter to the timed waits, but the convoys are still possible. Our waitForConditionOrInterrupt implementation uses a waiter list of Notifyable to support interruptible waits, so we should reuse that same idea in a new TicketHolder implementation which supports interruptibility natively (rather than timed waits).