periodically re-evaluate all jobs
- Dominant language
- Go
- Stars
- 17k
- Forks
- 2.1k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 105
Description
Large clusters can have allocations and deployments in various failure states on a regular basis. Because evaluations are idempotent over the state, re-running an evaluation for service and system jobs at any time should be safe. If many allocations or deployments are in failed states and not resolved, then an allocation or client update on the cluster that unblocks evaluations waiting on `queued-allocs` can potentially cause a large number of evaluations to be processed concurrently, resulting in the reconciler resolving the failed allocations all at once. This can be surprising for operators.
We should consider having a periodic process that re-evaluates service and system jobs on the cluster so that these failed states can be resolved gradually but frequently. One possibility is to tune the rate of re-evaluations to the number of jobs on the cluster so that we're re-evaluating the cluster state at least once a day.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files or tests are named. Start by tracing how service and system jobs are evaluated and how the reconciler handles failed allocations, then examine existing scheduler tests and evaluation throttling. Done means a periodic, rate-controlled re-evaluation process is defined and validated without causing concurrent evaluation spikes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100