Meaning
Decorrelated jitter is a technique for calculating a retry delay that adds randomness to exponential backoff, breaking up synchronized retry storms. It addresses the thundering herd problem where many clients retry simultaneously, overwhelming a service. The method is used whenever a request fails and the client must wait before attempting again.
Primary Function
Backoff algorithm
Communicative Purpose
Prevents synchronized retries that cause thundering herd effects in distributed systems.
Pattern
determine base interval → apply decorrelated jitter → schedule retry
Core Structure
delay = random(0, base * 2**attempt)
Função primária
Backoff algorithm
Propósito comunicativo
Prevents synchronized retries that cause thundering herd effects in distributed systems.
Situações de gatilho
Microservices: a service call fails due to temporary overload Client libraries: network request times out and needs a retry Cloud APIs: rate limit exceeded and subsequent calls must be delayed
Contextos
Distributed systems, microservice architectures, cloud SDKs, client‑side networking libraries, database connection pools.
Padrão
determine base interval → apply decorrelated jitter → schedule retry
Estrutura central
delay = random(0, base * 2**attempt)
Colocados típicos
- exponential backoff
- jitter
- retry
- sleep
- timeout
Substituições comuns
- Full jitter (uses max interval
- simpler) – less variance
- Equal jitter (midpoint between min and max) – balanced
- Simple exponential backoff (no jitter) – can cause synchronization.
Erros comuns
Using a fixed seed for the random generator → produces repeatable patterns and defeats jitter purpose. Omitting the exponential factor and using only base * random() → insufficient spread for higher retry counts. Capping the delay too low → retries may still collide under high load.
Similar / contraste
Full jitter: always picks the maximum backoff value, whereas decorrelated jitter picks a random value up to that maximum. Equal jitter: picks a value between half and the full backoff, offering less variance than decorrelated jitter. Simple exponential backoff: no randomness, leading to synchronized retries.
Interferências
Coming from JavaScript: using Math.random() without a cryptographic source may produce predictable patterns – consider using secrets.randbits() in Python for security‑sensitive backoff.
Família do chunk
- Exponential backoff
- Full jitter
- Equal jitter
- Randomized retry
Nuance
Do not use decorrelated jitter when deterministic timing is required, such as in real‑time control loops. The added randomness has negligible CPU overhead but can slightly increase average latency compared to pure exponential backoff. Ensure the calculated delay does not exceed application‑level timeout limits, otherwise retries may be abandoned.
Efeito pragmático
Applying decorrelated jitter reduces the likelihood of service overload spikes, improving overall system stability and request success rates under failure conditions.
Dica de memória
Think of a crowd leaving a stadium: if everyone exits at the same interval they jam the doors, but if each person pauses a random amount, the flow smooths out.
Nota
The decorrelated jitter algorithm was popularized by AWS in their retry guidelines for SDKs.
Upgrade path
Full jitter backoff algorithm (random(0, base * 2**attempt) with max cap) for tighter latency bounds.
Log in to save chunks.