pub async fn open_hedge_sibling(
url: &SensitiveUrl,
knobs: Box<dyn BlobKnobs>,
metrics: S3BlobMetrics,
) -> HedgeSiblingExpand description
Opens the sibling handle that crate::hedge::HedgedBlob runs hedge
requests on for url.
Contract:
- An HedgeSibling::Isolated handle observes exactly the same durable
store as a handle opened from the same
url, but is built from a scratch client: it shares no HTTP connection pool, DNS state, or credential chain, so a hedge request on it can never be assigned a connection the primary’s pool has already half-killed. - Backends where a second open would observe an independent store (mem, turmoil’s simulated store), or that have no connection state to isolate (file), return HedgeSibling::SharedWithPrimary instead.
- Callers must use the handle only for idempotent reads.
Errors opening the sibling degrade to HedgeSibling::Unavailable with a warning rather than failing: persist must come up even if hedging cannot. What a caller does with that is its own contract, see crate::hedge::HedgedBlob::new_arming.