Raise a check's store without durability and remove what earlier holders left (hq issue 306)
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered

On the control node the store-bound packages of the controller's suite ran
five to seven times slower than on any other holder, and every controller
check that landed there ran past the suite's thirty minutes: a throwaway
store flushing to a disk the mesh's own store, bus and forge keep busy.
A store that lives for one check needs no crash safety.

A holder recreated mid-check left the check's store and bus running, and
the redelivery went to another machine, so nothing removed them: eleven
pairs across four machines. A starting holder has taken nothing, so every
container labelled with an ask of the seat is an earlier holder's.
This commit is contained in:
jochen
2026-10-08 10:20:28 +02:00
parent c714d07739
commit 85b2a1855b
7 changed files with 178 additions and 1 deletions
+11 -1
View File
@@ -346,7 +346,7 @@ func Check(ctx context.Context, run Runner, spec CheckSpec, workspace, registry
}()
labelled := Labelled(run, spec.ID)
store, err := throwaway(ctx, labelled, run, spec.ID+"-store", StoreImage(f.Versions.Store), 5432,
[]string{"-e", "POSTGRES_PASSWORD=check"}, nil)
[]string{"-e", "POSTGRES_PASSWORD=check"}, StoreSettings)
if err != nil {
return CheckVerdict{}, err
}
@@ -848,6 +848,16 @@ func StoreImage(version string) string {
return "postgres:" + major + "-alpine"
}
// StoreSettings are the throwaway store's server settings: **no durability** (novox/hq issue 306). The
// store lives for one check and is removed after it, so nothing it writes has to survive a crash —
// and a test suite that creates a database per test asks the disk to flush thousands of times. On a
// machine whose disk the mesh's own store, bus and forge already keep busy — the control node — each
// flush waited its turn: the store-bound packages of the controller's suite ran five to seven times
// slower there than on any other holder, while those that touch no store ran alike, and its check ran
// past the suite's thirty minutes every time it landed there. The release stays the mesh's; only what
// a crash would need is switched off.
var StoreSettings = []string{"-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"}
// BusImage is the bus a check stands on: the release the mesh's bus server runs.
func BusImage(version string) string {
v := strings.TrimPrefix(strings.TrimSpace(version), "v")