-
Notifications
You must be signed in to change notification settings - Fork 288
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prevent starvation of large jobs #534
Comments
The field |
Yes, so smaller jobs that were submitted after the big job, but got a chance to start before the big one because they happen to fit, should be the primary candidates for preemption. Imagine this example (all jobs from the same priority class):
|
Gotcha, the creation timestamps for each Jobs is a very clear signal. |
Maybe we can add a property in clusterQueue to allow workload preempting workloads with same priority after some time? |
/assign |
A middle ground between this and // PreemptIfNewerThen if set, jobs with the same priority having a scheduling timestamp
// bigger than the current workload + PreemptIfNewerThen seconds will be
// considered for preemption in order to avoid starvation of large jobs.
// This is only applicable within the same cluster queue when WithinClusterQueue
// is set to LowerPriority.
//
// +optional
PreemptIfNewerThen *int64 |
This should be a Clusterqueue API field. Also, do we expect more tuning options? If so, it could be something like: preemption:
withinClusterQueue: LowerThanOrEqualPriority
samePriority:
ifNewerThanSeconds: 100 Although I'm not convinced about the wording |
Let's step back. |
Hi, Aldo. I think |
My question was whether we could start without |
What would you like to be added:
Workloads with the same priority don't preempt each other within a ClusterQueue, one consequence is that large size jobs may be starved if users submit a stream of smaller jobs from the same priority class.
To address this case, we could add a preemption strategy that allows older jobs to preempt newer ones from the same priority class.
Why is this needed:
To prevent starvation of large jobs via preemption.
Completion requirements:
This enhancement requires the following artifacts:
The artifacts should be linked in subsequent comments.
The text was updated successfully, but these errors were encountered: