pub struct SwimConfig {
pub indirect_probes: u32,
pub suspicion_periods_base: Tick,
pub ns_dilation: Tick,
pub ns_max: u32,
pub refutation_enabled: bool,
}Expand description
Tunables for the SWIM + Lifeguard state machine. The defaults
mirror the Lifeguard paper’s recommended shape (small k, a
suspicion timeout that is a small multiple of the probe period,
scaled logarithmically by cluster size).
Fields§
§indirect_probes: u32Number of indirect probers per period (k). Not consumed by
the pure state machine directly – the I/O shell uses it to
pick fan-out – but recorded here so the whole knob set lives
in one place.
suspicion_periods_base: TickBase suspicion timeout, in protocol periods, before the dogpile and nack-score adjustments. A lone suspicion on a healthy observer waits this long before confirming.
ns_dilation: TickMultiplier applied per unit of nack score when dilating the
suspicion timeout: a slow observer (high NS) waits
base * (1 + ns * dilation) periods. Setting this to 0
disables Lifeguard timeout dilation (used by the negative
control in the DST model).
ns_max: u32Maximum nack score. Caps how far a slow observer dilates.
refutation_enabled: boolWhen false, a node cannot refute a suspicion by bumping its incarnation. This is NOT a production knob – it exists only so the DST model’s negative control can show that disabling refutation makes a live-but-slow node get falsely and permanently confirmed dead.
Trait Implementations§
Source§impl Clone for SwimConfig
impl Clone for SwimConfig
Source§fn clone(&self) -> SwimConfig
fn clone(&self) -> SwimConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more