Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-8588

Introduce a work stealing Process scheduler.

    XMLWordPrintableJSON

Details

    • Epic
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • libprocess
    • None
    • Work Stealing Process Scheduler

    Description

      Currently, libprocess uses a work sharing Process scheduler, by which all workers take work from a global shared runnable Process queue. This has some performance implications, for example the shared global queue can have a high degree of contention, and Processes can migrate across cores frequently (this can be even more expensive on NUMA systems).

      We can introduce an alternative work stealing scheduler, in which each worker has its own queue. When this worker runs out of items, it steals from another worker's queue (stealing attempts could be done with cache locality / NUMA in mind).

      The process scheduler could ideally be a run-time option if it does not introduce performance overhead over a compile time option.

      Attachments

        Activity

          People

            Unassigned Unassigned
            bmahler Benjamin Mahler
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: