Skip to main content

CHANNEL_TCP_CONGESTION

Static CHANNEL_TCP_CONGESTION 

Source
pub static CHANNEL_TCP_CONGESTION: Key<String>
Expand description

TCP congestion-control algorithm applied to channel sockets after connect/accept (e.g. bbr). Empty (the default) leaves the host default (cubic) in place, so this is a no-op for the overwhelming majority of channels; only bandwidth-bound long-haul paths (e.g. remotemount’s client->leader block ship) opt in. cubic underfills a link with a high bandwidth-delay product; bbr recovers that bandwidth. Set via env HYPERACTOR_CHANNEL_TCP_CONGESTION or configure(channel_tcp_congestion="bbr").

PROCESS-LOCAL, deliberately: the right controller is a property of the LINK, not of the mesh, and the procs in one mesh do not share a link profile. A client shipping across a DC has a high bandwidth-delay product and wants bbr; the intra-cluster hops between workers do not, and bbr measurably hurts them. Propagating one value to every proc forces a single answer on links that want different ones – measured on MAST at 256 hosts, cold import torch:

    bbr on client + relays    39.0s
    cubic everywhere          31.2s
    bbr on client only        19.0s

A proc that genuinely wants a non-default controller sets the env var, which is per-proc and still resolves above everything else.