test+docs(#2448): multi-agent restart test + doc shapes
- multi_agent_restart_is_one_dag_with_concurrent_per_agent_subgraphs: two agents restart in one DAG; both SetWanted heads are roots, each acquiring its own agent's lease concurrently. Existing single-agent shape/lease tests updated for the templates::restart(&[..], graceful) signature. - coordinator.md + templates.rs module doc: restart takes an agent list; a hive-wide restart is one DAG with N per-agent subgraphs.
This commit is contained in:
parent
1739716fa2
commit
c8bd0f7180
2 changed files with 75 additions and 8 deletions
|
|
@ -76,12 +76,15 @@ container build:
|
|||
|
||||
The power ops write the durable `wanted` intent via a head `SetWanted`
|
||||
node (not a pre-submit side effect) — it holds the agent lease, so
|
||||
intent-write + reconcile is atomic per-agent.
|
||||
intent-write + reconcile is atomic per-agent. `restart` takes an agent
|
||||
*list*: a hive-wide `hivectl restart` / `restart-all` is ONE DAG with a
|
||||
per-agent restart subgraph each (independent roots, run concurrently on
|
||||
their own leases), not N separate DAGs.
|
||||
|
||||
```text
|
||||
rebuild(a): Prebuild(a) → StopForUpdate(a) → Swap(a) →(after-any) Reconcile(a)
|
||||
graceful-stop(a): SetWanted(a,Off) → Signal(a) → Drain(a) → Reconcile(a)
|
||||
restart(a): SetWanted(a,Up) → StopForUpdate(a) → Reconcile(a)
|
||||
restart(a..): per agent: SetWanted(a,Up) → StopForUpdate(a) → Reconcile(a) (N subgraphs, 1 DAG)
|
||||
graceful-restart(a): SetWanted(a,Up) → Signal(a) → Drain(a) → StopForUpdate(a) → Reconcile(a)
|
||||
start(a): SetWanted(a,Up) → Reconcile(a) (stale rev ⇒ stale-start below)
|
||||
stale-start(a): SetWanted(a,Up) → «rebuild subgraph» (prebuild noops — agent is down)
|
||||
|
|
|
|||
Loading…
Reference in a new issue