Skip to content

Timeboxed push for simplifying work stealing #6993

Closed

Description

@fjetter

Work stealing is a known source of problems. It's current implementation is overly complex and has a couple of known problems, some of which are almost fixed.

Specifically, I propose to time box this to ~1-2weeks and try to wrap up a few known issues while pushing for a drastic simplification of the implementation. Once the dust settles, we can reevaluate how this feature has to evolve.

The short to mid term target of this effort should be to reduce the number of steal requests drastically such that we can afford spending more time on "good" decisions (e.g. reusing the actual scheduler decide_worker logic or something even better)

Even if we want to get rid of work stealing entirely, there is some need for it to balance inhomogeneous workloads and allow cluster upscaling, see #6600 The most valuable component of the current implementation is the handshake mechanism move_task_request / move_task_confirm that ensures consistent transitions without recomputing a key. I believe by tearing down the infrastructure around this handshake piece by piece we can iterate towards a more stable and maintainable implementation.

Previously I approached changes to this logic very carefully due to the lack of repeatable benchmarks. Therefore, I suggest that this effort should utilize benchmarks in coiled-runtime to the best of our abilities.

Activity

  1. added
    enhancementImprove existing functionality or make things work better
    stabilityIssue or feature related to cluster stability (e.g. deadlock)
    adaptiveAll things relating to adaptive scaling
    on Sep 2, 2022
  2. self-assigned this
    on Sep 2, 2022
  3. hayesgb commented on Oct 17, 2022

    @hayesgb
  4. jrbourbeau commented on Oct 17, 2022

    @jrbourbeau
    Member

    @hayesgb how does #7075 relate to this issue? Does it close this issue? Or perhaps it's just related work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

adaptiveAll things relating to adaptive scalingenhancementImprove existing functionality or make things work betterperformanceschedulerschedulingstabilityIssue or feature related to cluster stability (e.g. deadlock)stealing

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions