Penetration — промахи по отсутствующим данным, avalanche — массовое истечение или потеря кеша, warmup — его предварительное заполнение. Для распродажи нужны прогрев и защита БД от лавины промахов.
Что такое Cache Penetration, Cache Avalanche и Cache Warmup? Как спроектировать слой кэширования для интернет-магазина так, чтобы во время ночной распродажи, когда миллионы пользователей одновременно запрашивают новые товары, база данных не вышла из строя из-за промахов кэша?
Penetration — промахи по отсутствующим данным, avalanche — массовое истечение или потеря кеша, warmup — его предварительное заполнение. Для распродажи нужны прогрев и защита БД от лавины промахов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Penetration — промахи по отсутствующим данным, avalanche — массовое истечение или потеря кеша, warmup — его предварительное заполнение. Для распродажи нужны прогрев и защита БД от лавины промахов.
Заранее прогревают популярные товары, разносят TTL случайным сдвигом и объединяют параллельные загрузки одного ключа через single-flight. Отсутствующие записи можно кешировать кратко, учитывая появление новых товаров. Ограничивают конкурентные обращения к БД и вводят backpressure, а допустимые устаревшие данные отдают по stale-while-revalidate. Остатки и финальную цену покупки проверяют в авторитетном хранилище: кеш каталога не гарантирует корректность продажи.