Design 47: the build seats yield under one share per node (ADR 0553)

This commit is contained in:
2026-10-26 14:26:54 +01:00
parent 3a5c4c7c4d
commit 03e2f644bf
@@ -4,6 +4,7 @@ status: in-progress
code: [mesh-controller, mesh-catalog modules/mesh-delivery-gate, mesh-delivery, mesh-host, mesh-sdk, mesh-vault, hq 00-META/checks]
updated: 2026-10-26
decisions:
- "ADR 0553"
- "ADR 0551"
- "ADR 0550"
- "ADR 0549"
@@ -138,6 +139,10 @@ source revision is derived from the keys: every **want** equals its module's **f
**build capacity**, a setting of the node that the build modules read; a node at capacity 0, the control-node among them, pulls nothing
(ADR 0525 §2, §4, §5). One ask is one whole job on one node: the fetch, the build and the push of a fingerprint, or the fetch, the digest and
the levels of a check (ADR 0525 §3). A session may call a build module's tools on a named node (ADR 0525 §8).
**The build seats yield** (ADR 0553): the node-engine places every build module's runtime of a node in one slice at the top
of the hierarchy, at idle CPU weight and nice 19, under one quota of the node's share of its processors (the tool runner's
setting `build-cpu-share`, default half, set per node), and each step runs its part of that share in threads. Interactive and
service work always come first, and all build modules of a node share one bound.
- **The checker** runs the merge check on built artifacts: a change's tests, through the build module of each
module's language and by that language's convention, running only the packages whose inputs changed and
taking the kept verdict of the rest; it writes the change's one status (ADR 0444, ADR 0445, ADR 0447); it runs dark in R4c-5 (ADR 0484).