Go arvados.Client responds to 503 errors by limiting outgoing connection concurrency
Before starting an outgoing request, arvados.Client should wait until the number of concurrent outgoing connections would not exceed
- 0, if a 503 response was received <1s ago
- the outgoing connection concurrency limit specified by the caller, if any
- an automatic outgoing concurrency limit which gets decreased by 50% on each 503 and increased by max(10%,1) on each 2xx
The caller should be able to retrieve the client's current connection limit. This will enable dispatchcloud, for example, to reduce the number of containers it attempts to run concurrently in #19973.