feat(router): truly uncap the mux standby pool, filled in the background - #4202
Merged
Merged
Conversation
Operator direction: set up every disjoint route the topology offers, held in warm standby, ready to switch in at a moment's notice — not a small reserve. - adaptStandbyMax 60 -> 512 so Mux (= adaptRevActive + adaptStandbyMax) is 513; 512 sits above any realistic single-exit disjoint count (~480 for a warm visor), so the binding limit is the topology, not the constant. - Decouple foreground from background so the uncap is not a connect-time storm: establishMuxRoutes caps its SYNCHRONOUS initial dial at initialForegroundMux (16) — a lean mux that returns fast — and the background self-heal fills the rest of the disjoint pool one leg at a time. - Self-heal no-progress backoff: once N consecutive dials fail to grow the degree (the disjoint set is exhausted for now), settle at the achievable degree and stop instead of hammering the setup node toward an unreachable 513. A later leg death or newly-online transport re-triggers the heal, so the target is a ceiling the fill tracks the topology up to, never a storm. bundle.wasm regenerated (TinyGo); parity_test (wazero) green; the adaptive Mux assertion updated 61 -> 513.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Operator direction: set up every disjoint route the topology offers, held in warm standby, ready to switch in at a moment's notice.
adaptStandbyMax60 → 512 (Mux = 513); 512 sits above any realistic single-exit disjoint count (~480 for a warm visor), so the binding limit is the topology, discovered by the self-heal backoff — not the constant.establishMuxRoutescaps its synchronous initial dial atinitialForegroundMux(16) — a lean mux that returns fast — and the background self-heal fills the rest one leg at a time.bundle.wasmregenerated (TinyGo);parity_testgreen; adaptive Mux assertion 61 → 513.