Make the scheduler resource aware
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 13
- Forks
- 21
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 8
Description
The regression runs require different tools, and those tools have differing number of available licenses. Those licenses are part of a shared pool of licenses, and it would be useful to limit the number of jobs depending on the type of resource they require (for example Tool A, and Tool B). At the moment the only configuration that can be used to influence resource usage is "max parallel jobs".
- [ ] Limit the number of concurrent jobs the scheduler will deploy per resource type. For example, max of X jobs using Tool A, max of Y jobs using Tool B.
- [ ] Limit the number of jobs in the build phase independent of the run phase?
- [ ] Limit the total number of jobs - retain the max parallel functionality
- [ ] Allow for changes in resource availability over time - for example limit license usage in the day, and increase the limits over night?
- [ ] Fully dynamic resource aware scheduling by polling an external service to get the instantaneous resource usage (allow definitions such as use up to 80% of available resources).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the scheduler implementation and the existing "max parallel jobs" configuration in the Python project. Clarify which resource-limit scope is intended first: per-resource limits, build/run limits, total limits, time-varying availability, or external-service polling. Done should include a specific, testable scheduling behavior and configuration for the selected scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100