-
Type:
Improvement
-
Resolution: Won't Do
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Catalog and Routing
-
CAR Team 2026-04-13
-
None
-
None
-
None
-
None
-
None
-
None
-
None
The current acquire path calls tryAcquire() before enqueueing: TicketHolder calls tryAcquire() and only then acquire(), and UnorderedTicketSemaphore::acquire() also starts with a tryAcquire() loop. This adds extra contention and complexity.
Change the acquire path so that when a caller chooses to wait, it enqueues immediately without a prior tryAcquire(). Keep tryAcquire() as a separate non-blocking path for callers that want to avoid waiting.
- depends on
-
SERVER-119347 Generalize TicketHolder to support pluggable concurrency primitives and policies
-
- Closed
-
- is related to
-
SERVER-122680 OrderedTicketSemaphore might queue operations with tickets available
-
- Closed
-
-
SERVER-122763 Validate OrderedTicketSemaphore tryAcquire/acquire/release with a TLA+ model
-
- In Code Review
-