docs(spec): host state never changes pools or shares; the scheduler skips unusable hosts

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-10-13 07:16:53 +00:00
parent d1be84cd66
commit d769b746fa
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
2 changed files with 5 additions and 3 deletions

View file

@ -183,7 +183,7 @@ This feature makes projects first-class cluster configuration entities that cont
#### Acceptance Criteria
1. The Scheduler shall divide the hosts, separately for each resource, into disjoint pools: one per host group named as a location in any share of that resource, and the rest of the cluster (all other hosts); all of Requirement 6 applies to each pool of each resource on its own, an unlocated share being a share in the rest-of-cluster pool.
2. The Scheduler shall take a pool's capacity of a resource as the static total of that resource over the pool's registered hosts, including hosts that are down or closed and excluding decommissioned ones, so capacity changes only when hosts join, are added to or removed from a location's host group, or are decommissioned.
2. The Scheduler shall take a pool's capacity of a resource as the static total of that resource over the pool's registered hosts, including hosts that are down or closed and excluding decommissioned ones, so capacity changes only when hosts join, are added to or removed from a location's host group, or are decommissioned. A change in a host's state (down, unavailable, closed, reopened) shall change no pool, capacity or share; when placing a job, the Scheduler only skips the hosts it cannot use.
3. The Scheduler shall compute each project's effective share of a resource in a pool as its absolute amount, or as its percentage of its parent's effective share in that pool; a top-level project's percentage is of the pool's capacity.
4. The Scheduler shall charge a job's allocation of a resource on a host to the pool that host belongs to for that resource.
5. If a host joining the cluster belongs to two location host groups named for the same resource, then the Scheduler shall place it in the first such location in configuration order and log a warning naming the host, the resource and both groups.

View file

@ -235,8 +235,10 @@ them:
is 100% of every resource at a location.
- **Pool capacity** is the static total of the resource over the pool's
registered hosts, including down and closed hosts, excluding
decommissioned ones; elastic hosts count once joined. A heartbeat loss
never moves shares.
decommissioned ones; elastic hosts count once joined. Host state
(down, unavailable, closed) never changes a pool, its capacity or any
share (user, 2026-10-13); the scheduler just skips hosts it cannot use
when placing a job.
- **No shares, no change.** A resource for which no project declares a
share is unassigned at the root: no cap, today's behaviour.
- **Shares are per resource** (slots, mem, gpu, licences, ...): a project