Skip to main content

Module connection

Module connection 

Source
Expand description

A caller-owned QUIC connection kept warm across many hash fetches ([connection::WarmConnection]): one dial amortized over every hash, one bi-stream per hash (no wire change), closed once on the handle’s own Drop; and the command-wide map of one such connection per node (connection::Connections). Dialling cdn/client/v1 connections, and a caller-owned connection kept warm across many hashes.

dial is the one dial every requester path uses, one-shot or warm. It runs the dial on a caller-chosen runtime when the caller asks for one, so the connection’s QUIC driver lives there.

[WarmConnection] dials once and stays open, so a caller fetching many hashes from one provider pays the dial + NAT-traversal cost a single time and opens a fresh bi-stream per hash instead. The wire is unchanged — one stream still carries exactly one hash (open_progressive_pull_on opens the bi-stream); only the client-side teardown differs, because a per-hash pull leaves the connection open for the next one rather than closing it.

Connections keeps one [WarmConnection] per node for a whole command, so every lane and every entry of that command dials each node once.

Structs§

Connections
One live cdn/client/v1 connection per node, shared by every pull of one command.