Продвинутый
Что такое "Cache Stampede" (Эффект собачьей кучи) и как его предотвратить?
Cache Stampede — это сбой, возникающий при одновременном протухании (TTL) популярного ключа в кэше.
Сценарий:
1. Кэш главной страницы истек.
2. В эту же секунду на сайт заходит 1000 пользователей.
3. Все 1000 потоков видят Cache Miss и одновременно идут в БД генерировать тяжелую страницу.
4. БД ложится от перегрузки.
✅ Как лечить:
- Locking (Мьютексы): Первый поток ставит лок, идет в БД, остальные ждут.
- Рандомизация TTL: Добавлять случайный джиттер к времени жизни кэша (чтобы ключи протухали не одновременно).
- Фоновое обновление: Кэш обновляется асинхронным воркером до того, как истечет TTL.