Skip to content
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

Optimize run scheduling algorithm for improved CI/CD efficiency #418

Open
carlfranz opened this issue Jul 31, 2023 · 0 comments
Open

Optimize run scheduling algorithm for improved CI/CD efficiency #418

carlfranz opened this issue Jul 31, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@carlfranz
Copy link

What would you like to be added:

A more efficient scheduling algorithm for executing runs of Agola.

Why is this needed:

Currently, the runs in Agola are scheduled to be sent to the run-service and executed in the order of arrival. This leads to potential bottlenecks where a project requesting multiple runs can cause significant delays for other projects, even if they have shorter build times.

For example, if Project A takes 10 minutes to build and triggers 3 runs a1, a2, a3 in succession, and Project B takes only 1 minute to build but triggers a single run b1, the execution order is a1, a2, a3, b1. As a result, Project B has to wait for an excessive 30 minutes before being built.

We propose the implementation of a more intelligent scheduling algorithm that optimizes the execution order of runs based on their source and estimated build times. In the given scenario, a more efficient order would be a1, b1, a2, a3, which reduces the wait time for Project B significantly.

This enhancement would greatly improve the overall efficiency and fairness of the build execution process.

@carlfranz carlfranz added the enhancement New feature or request label Jul 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant