googleapis / googleapis/google-cloud-java

Update Jitter in Exponential Retry Strategy

未关闭
#9,102 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
priority: p4 type: feature request
主要语言
Java
星标
2.1k
派生
1.2k
平均合并
1 天 23 小时
30 天内合并 PR
154

描述

**Is your feature request related to a problem? Please describe.**
In Exponential Retry Strategy, Jitter is used to prevent from several clients retrying at the same time.
However, the [existing jitter](http://googleapis.github.io/gax-java/1.8.0/apidocs/com/google/api/gax/retrying/RetrySettings.Builder.html#setJittered-boolean-) value is generated per:

```
actualDelay = rand_between(0, min(maxRetryDelay, exponentialDelay))
```

The issue with the delay is with pathological case of a short delay, e.g. 1 second.

**Describe the solution you'd like**
It would help to update jitter delay to be either one of the following:

1. `actualDelay = exponentialDelay + rand_milliseconds()`
2. `actualDelay = rand_between(exponentialDelay - E, exponentialDelay + E)` where E is constant value used to create a range with respect to exponentialDelay.

**Describe alternatives you've considered**
Turning off jitter which defeats the purpose of having jitter.

First came up in: https://github.com/googleapis/java-storage/issues/178

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。