-
Notifications
You must be signed in to change notification settings - Fork 500
Add StrictFIFOPerFlavor queueing strategy to avoid cross-flavor head-of-line blocking #8393
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
base: main
Are you sure you want to change the base?
Conversation
|
Welcome @rooty0! |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: rooty0 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Hi @rooty0. Thanks for your PR. I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
✅ Deploy Preview for kubernetes-sigs-kueue ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
/ok-to-test |
|
I think such changes require the KEP process. |
|
@rooty0: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
I'm totally open to improvements - I just wanted to get a sense from others whether this PR looks good to proceed |
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
What type of PR is this?
/kind feature
/kind api-change
What this PR does / why we need it:
This PR introduces a new queueing strategy
StrictFIFOPerFlavorthat combines strict FIFO ordering with per-flavor independence to prevent cross-flavor head-of-line blocking.Problem:
With the existing
StrictFIFOstrategy, a workload waiting for quota on one resource flavor (e.g., expensive GPUs) blocks all workloads behind it in the queue, even those that could run immediately on different resource flavors (e.g., cheaper CPUs or different GPU types).Solution:
StrictFIFOPerFlavormaintains strict FIFO ordering within each resource flavor but allows workloads targeting different flavors to be admitted out of order. This enables better resource utilization in multi-flavor clusters while preserving fairness guarantees within each flavor.Key behaviors:
Implementation:
QueueInadmissibleWorkloads(), checks for flavor conflicts before moving to active queueWhich issue(s) this PR fixes:
Fixes #8309
Special notes for your reviewer:
StrictFIFOandBestEffortFIFObehaviorStrictFIFOPerFlavorto theQueueingStrategyenum in ClusterQueue CRDcluster_queue_strictfifo_perflavor_test.goSuggested review order:
apis/kueue/v1beta2/clusterqueue_types.gopkg/cache/queue/cluster_queue.go(RequeueIfNotPresent, QueueInadmissibleWorkloads)pkg/scheduler/scheduler.go(requeueAndUpdate)pkg/cache/queue/cluster_queue_strictfifo_perflavor_test.goWorking example: https://asciinema.org/a/BMWnC6mY5OvWf2yjHyJQpV38d
Does this PR introduce a user-facing change?