Job priorities, eviction and pre-emption

Open
#309 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
go

Research direction

Start by reading the scheduler and task state handling to understand how pending tasks and node availability are represented. Then determine how job priority, pre-emption, and eviction should interact, including the meaning of the Preemptive hint. Done requires an agreed design and corresponding scheduling behavior, but the issue does not identify specific files or tests.

Written by the indexing model from the issue text.

Description

area/orchestration priority/P2

Right now, every Job has the same priority and if no candidate node is available the Task stays in PENDING state.

An alternative would be to provide a priority to every Job.

When no node is available to schedule a task, the scheduler would try to evict one or more lower priority task to make room for it.

Since eviction might be costly, Jobs could hint they are Preemptive - therefore informing the scheduler that it's okay to evict them to make room for someone else.

Dominant language
Go
Stars
3.7k
Forks
676
Avg merge
4d 9h
Merged PRs (30d)
6

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from moby/swarmkit

All issues in moby/swarmkit

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.