Timeboxed push for simplifying work stealing #6993
Labels
adaptive
All things relating to adaptive scaling
enhancement
Improve existing functionality or make things work better
performance
scheduler
scheduling
stability
Issue or feature related to cluster stability (e.g. deadlock)
stealing
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.
The text was updated successfully, but these errors were encountered: