SYSTEM ATLASЗагрузка материала

Экспоненциальная задержка и jitter

Exponential Backoff with Jitter

Повторы должны разноситься во времени, чтобы не усиливать сбой.

Простыми словами

Например, резерв существует на бумаге, но во время реального сбоя оказывается, что переключение на него тоже зависит от отказавшего компонента. Поэтому заранее определяют границы ожидания и поведение при отказе - иначе один медленный компонент начинает удерживать ресурсы и распространять проблему дальше.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

В задаче «SRE» сразу применить привычное решение и назвать происходящее «Экспоненциальная задержка и jitter», не проверив, действительно ли работает этот механизм. Так можно улучшить один симптом и пропустить основную причину.

Системный подход

Использовать «Экспоненциальная задержка и jitter» как гипотезу: сначала определить границы ситуации и исходное состояние, затем менять только то, что связано с проверяемым механизмом, и смотреть на результат.

Ограничения

Повторы полезны только для временных и идемпотентных ошибок; без лимита, jitter и бюджета они усиливают перегрузку и дублируют эффекты.

Источник

Marc Brooker, “Exponential Backoff and Jitter”, 2015.

Первоисточник