hashicorp / hashicorp/nomad

periodically re-evaluate all jobs

Open
#15,566 0 comments 1 reaction 0 assignees View on GitHub
stage/needs-discussion type/enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.