What to do after an attempt ended with status and trailers: None hands thisresult to the caller, Some(wait) sends another attempt after wait.
committed is a call whose response headers arrived, which A6 never retries;unprocessed is one the server refused or a GOAWAY says it never handled, whichis retried once at once without counting. roll draws the jitter, from [0, 1).The order of the checks is grpc-go's.
How long to wait before the attempt-th dial (the first being 1): the initial waittimes the factor once per earlier failure, capped, then spread by the jitter — rolldraws from [0, 1) and 0.5 is no spread at all.
Add a sub-connection for address — a name that resolved to it after the pool was built— and return whether it was new. Re-resolution feeds the pool this way, so a backend thatappeared since the channel started can be dialled without rebuilding the pool and losingwhat the others' states are.
Pick a READY sub-connection's address for the next call, applying the LB policy over just theready ones (← gRPC picker). None when no sub-connection is ready.
Whether an attempt ending with status settles the call: OK does, and so does anystatus outside codes. A non-fatal one sends the next attempt at once instead.
The address the next call should use, or None when the resolver produced none. PickFirstalways returns the first address; RoundRobin returns each in turn, wrapping around.
A method's retry policy (A6 retryPolicy). backoff carries maxAttempts asattempts, initialBackoff as base, maxBackoff as cap andbackoffMultiplier as factor; codes is retryableStatusCodes.
The token count one server name shares across every call to it. A failure takes atoken, a success gives back ratio, and at or below half the maximum no call isretried or hedged. Kept in thousandths of a token as gRPC core keeps it, so aratio is read to three decimal places and nothing drifts.
Decode a DNS response: echoed id, response code, and every answer record (A/AAAArecords carry their textual address). Questions are skipped; authority andadditional sections are ignored.