upgrade-all: at the tail, fill slots with two heavies rather than serialize

Per operator: always fill all CAP slots. Heavy/light alternation only spreads
heavies across waves while a light is available; once only heavies remain, run
two-per-wave (capacity is the tuned ceiling) instead of one-per-wave.
This commit is contained in:
autonomic-bot
2026-06-12 01:55:29 +00:00
parent f744c79e2d
commit 894d829313

View File

@ -164,8 +164,10 @@ peak memory stays bounded while both slots stay busy. Classify from the survey's
- **LIGHT / moderate** (one small image or a few light services): custom-html*, cryptpad, n8n,
uptime-kuma, lasuite-docs, lasuite-meet, keycloak, mailu, plausible.
Build the wave order by drawing one HEAVY + one LIGHT per wave (capacity 2) until a bucket empties,
then pair the remainder. For `CAP>2`, cap heavies per wave at ~`CAP/2`. If only heavies remain, run
them one-per-wave (effectively sequential) rather than risk an OOM.
then pair up the remainder. **Always fill all `CAP` slots** — once only heavies are left, run two (or
`CAP`) heavies per wave rather than leaving a slot idle; the box is tuned for `CAP` concurrent builds.
The heavy/light alternation is only to *spread* heavies across waves while a light is available, not a
hard cap. For `CAP>2`, spread heavies across waves where possible but still fill the slots.
Note (wave barrier): a wave waits for its slowest recipe before the next starts, so the light slot
idles while its heavy wave-mate finishes — accepted for the weekly run. Do NOT maintain a rolling