volcano icon indicating copy to clipboard operation
volcano copied to clipboard

Support Multiple Queue Dequeue Strategies to Improve Task Scheduling Efficiency

Open kingeasternsun opened this issue 4 months ago • 3 comments

What is the problem you're trying to solve

Description: In Volcano, each job submitted to a Queue is assigned a priority, where a higher number indicates higher priority. When multiple jobs or instances simultaneously request computing resources, they form a waiting queue based on their priorities until resources become available.

To improve resource utilization efficiency, it would be beneficial if Volcano could support multiple dequeue strategies at the queue level, configurable by users. Different strategies would directly affect the execution order of jobs but should not impact jobs that have already started running.

Proposed Dequeue Strategies

  1. FIFO Strategy

    • The scheduler repeatedly tries to dequeue the first task in the queue.
    • If the first task cannot be dequeued (e.g., insufficient resources), it will keep retrying without skipping to the next task.
  2. Traversal Strategy

    • If the first task cannot be dequeued, the scheduler skips it and attempts to dequeue the next jobs in the queue sequentially.

Describe the solution you'd like

We propose adding a mechanism to configure the dequeue strategy for each Queue. This could be achieved by:

  1. Introducing a new field in the Queue CRD, or
  2. Using an annotation on the Queue object.

The scheduler would then interpret this configuration and apply the corresponding dequeue strategy when managing tasks within the queue.

I'd like to do the PR.

Additional context

No response

kingeasternsun avatar Aug 27 '25 10:08 kingeasternsun

https://help.aliyun.com/zh/pai/user-guide/scheduling-policies

kingeasternsun avatar Aug 29 '25 06:08 kingeasternsun

Great feature!

JesseStutler avatar Nov 04 '25 06:11 JesseStutler

#4690, #3950 Also want FIFO dequeue strategies

JesseStutler avatar Nov 04 '25 06:11 JesseStutler