googleapis / googleapis/google-cloud-java

Update Jitter in Exponential Retry Strategy

Abierto
#9,102 0 comentarios 0 reacciones 0 asignados Ver en GitHub
priority: p4 type: feature request
Lenguaje dominante
Java
Estrellas
2.1k
Forks
1.2k
Merge medio
1 d 23 h
PR fusionados (30 d)
154

Descripción

**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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.