Keep lower-numbered lobbies during autoscaling

This commit is contained in:
2026-10-08 14:41:22 -04:00
parent c4e2ff4384
commit 62e3397d5c
5 changed files with 63 additions and 9 deletions
+8
View File
@@ -21,6 +21,14 @@ Plutonium keys belong to a game pool shared by every map, manual launch, collect
The desired count is `min(maximum, max(minimum, occupied lobbies + empty spare target))`. The controller evaluates policies every 15 seconds and requests at most one unresolved operation per policy. Game-wide policies allow one outstanding operation across their maps, prioritizing additions before removals. Once an operation settles, the next evaluation can act immediately on another eligible lobby. Surplus lobbies must still satisfy the configured continuous empty duration before removal. Create uses the existing startup concurrency, CPU, memory, library, port, and host admission checks. Lack of host capacity leaves one request waiting; it does not create additional requests every tick. Creates use current promoted launch files when provisioning begins.
When trimming a map, autoscaling keeps occupied lobbies and the lowest-numbered
empty lobbies needed for its minimum and spare targets. It selects the
highest-numbered eligible surplus lobby for removal. The required empty lobbies
are protected before checking idle timers, so Lobby 1 stays available while a
higher surplus lobby completes its empty interval. Existing numbering gaps remain
until normal growth needs another lobby; autoscaling does not replace healthy
lobbies just to renumber them.
Existing policies saved in the removed Dry run or Create only modes switch to Off on upgrade. Review and turn autoscaling On to resume; pending work remains tracked until settled.
## Ownership and blockers