Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-89021

Investigate alternative implementations of PriorityTicketHolder with non-FIFO semantics

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Workload Scheduling
    • 132

      While the FIFO semantics of the PriorityTicketHolder are fair, and typically reduce tail latencies (at the expense of median latency), some workloads also see drops in overall throughput with this implementation. This appears to be caused by the algorithm often waking a thread that is not currently scheduled, incurring higher context switching costs, and can lead to convoying. The SemaphoreTicketHolder implementation appears to do a better job of waking active waiters, and avoiding the convoy.

        1. FIFO.png
          221 kB
          Louis Williams
        2. LIFO.png
          247 kB
          Louis Williams
        3. Screenshot 2024-04-08 at 11.51.17.png
          95 kB
          Ger Hartnett
        4. Screenshot 2024-04-08 at 11.51.27.png
          111 kB
          Ger Hartnett

            Assignee:
            Unassigned Unassigned
            Reporter:
            dan.larkin-york@mongodb.com Dan Larkin-York
            Votes:
            0 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated: