Что такое Cache Stampede (также Cache Missile или Thundering Herd)? Представьте, что из кэша Redis одновременно удалился ключ с тяжелым отчетом, который запрашивают 5000 пользователей в секунду. Что произойдет со слоем БД и как это предотвратить?

Cache stampede — одновременный пересчёт одного дорогого значения множеством запросов после промаха. При 5000 запросах в секунду это может перегрузить БД и вызвать каскад тайм-аутов.

Короткий ответ

Что ответить на собеседовании

Cache stampede — одновременный пересчёт одного дорогого значения множеством запросов после промаха. При 5000 запросах в секунду это может перегрузить БД и вызвать каскад тайм-аутов.

Подробный разбор

Ответ с пояснениями

Cache stampede — одновременный пересчёт одного дорогого значения множеством запросов после промаха. При 5000 запросах в секунду это может перегрузить БД и вызвать каскад тайм-аутов.

Разрешите одному исполнителю обновлять отчёт, а остальным отдавайте допустимую устаревшую версию или ограниченно ждите. После захвата lock повторно проверьте кеш. Используйте TTL с разбросом, раннее обновление, ограничения нагрузки и lease с владельцем. Просто увеличить TTL недостаточно: первое заполнение и удаление ключа всё равно могут вызвать лавину.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее