From: Tom Clegg Date: Mon, 4 Dec 2023 23:11:47 +0000 (-0500) Subject: 21227: Don't reduce outgoing request concurrency below 4. X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/b11dab64f5cd5273247a1ae4c959c25168452a6a 21227: Don't reduce outgoing request concurrency below 4. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- diff --git a/sdk/go/arvados/limiter.go b/sdk/go/arvados/limiter.go index dc944160ab..9edc5386a7 100644 --- a/sdk/go/arvados/limiter.go +++ b/sdk/go/arvados/limiter.go @@ -16,6 +16,7 @@ import ( var ( requestLimiterQuietPeriod = time.Second requestLimiterInitialLimit int64 = 8 + requestLimiterMinimumLimit int64 = 4 ) type requestLimiter struct { @@ -145,6 +146,12 @@ func (rl *requestLimiter) Report(resp *http.Response, err error) bool { if max := rl.current * 2; max < rl.limit { rl.limit = max } + if min := requestLimiterMinimumLimit; min > rl.limit { + // If limit is too low, programs like + // controller and test suites can end up with + // too few slots to complete a single request. + rl.limit = min + } if rl.maxlimit > 0 && rl.maxlimit < rl.limit { rl.limit = rl.maxlimit }