Exponential Backoff and Jitter¶
Brooker, M. (2015). Exponential Backoff and Jitter. AWS Architecture Blog.
Cited by¶
3 citations across 3 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Thundering Herd
- The canonical fix is to spread the release window: replacing a synchronous release with one jittered uniformly over \([0, W]\) for \(W \gg \delta\) reduces the peak rate to \(n / W\), recovering the independence the queueing bound assumed.
This sourceEstablishes jitter (randomized backoff over a release window) as the canonical de-synchronization remedy for correlated retries, explicitly addressing the thundering-herd problem in which synchronized client retries spike load.
- The canonical fix is to spread the release window: replacing a synchronous release with one jittered uniformly over \([0, W]\) for \(W \gg \delta\) reduces the peak rate to \(n / W\), recovering the independence the queueing bound assumed.
Mechanisms¶
- Batch Job Staggering
- Its failure mode is the synchronized retry storm: if staggered jobs fail and all retry on the same fixed backoff, they re-synchronize into a fresh spike worse than the original — the classic thundering herd, where many clients wake and contend for one resource at once.
This sourceDemonstrates the contention created when many clients start together and try to update the same database row.
- Its failure mode is the synchronized retry storm: if staggered jobs fail and all retry on the same fixed backoff, they re-synchronize into a fresh spike worse than the original — the classic thundering herd, where many clients wake and contend for one resource at once.
- Randomized Polling Offset
- And adding an offset
This sourceShows that adding randomized jitter spreads otherwise clustered client retries.
- And adding an offset
Verification¶
This reference passed the adversarial substantiation pipeline: it was checked to exist and to support the claim it is attached to. See how references were verified.
Registry ID ref:ba4d33733396 · see in the full table