Investigate alternative implementations of PriorityTicketHolder with non-FIFO semantics

XMLWordPrintableJSON

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

      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
              Reporter:
              Dan Larkin-York
              Votes:
              0 Vote for this issue
              Watchers:
              15 Start watching this issue

                Created:
                Updated: