Что такое Cache Avalanche (лавина кэша), когда у тысяч ключей одновременно истекает TTL, и как это предотвращается с помощью рандомизации (jitter)?

Cache avalanche — массовое истечение ключей или недоступность кеша, из-за чего нагрузка одновременно переходит в основную БД. Jitter разносит сроки истечения во времени.

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

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

Cache avalanche — массовое истечение ключей или недоступность кеша, из-за чего нагрузка одновременно переходит в основную БД. Jitter разносит сроки истечения во времени.

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

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

Cache avalanche — массовое истечение ключей или недоступность кеша, из-за чего нагрузка одновременно переходит в основную БД. Jitter разносит сроки истечения во времени.

Вместо одинакового TTL назначайте, например, base_ttl + random.uniform(0, spread), если более долгий срок допустим. При жёстком пределе свежести выбирайте разброс только внутри разрешённого окна.

Jitter снижает синхронность, но не лечит полный отказ кеша. Дополнительно применяют ограничение конкурентных восстановлений, singleflight на горячий ключ, прогрев и допустимую выдачу stale-данных. Отличайте лавину многих ключей от stampede одного популярного ключа. Следите за miss rate и нагрузкой на источник данных.

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

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

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

Подробнее