Как избегать cache stampede, когда много клиентов одновременно запрашивают ключ после истечения кэша?

Объединяйте одновременные загрузки одного ключа, распределяйте истечение TTL и при допустимости отдавайте старое значение во время обновления.

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

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

Объединяйте одновременные загрузки одного ключа, распределяйте истечение TTL и при допустимости отдавайте старое значение во время обновления.

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

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

Объединяйте одновременные загрузки одного ключа, распределяйте истечение TTL и при допустимости отдавайте старое значение во время обновления.

Singleflight помогает внутри процесса; между репликами может потребоваться координация с ограниченным lease. Добавьте jitter к TTL и ограничьте нагрузку на источник данных. Не держите блокировку бесконечно и определите поведение при ошибке обновления. Для чувствительных или быстро отзываемых данных stale-ответ может быть недопустим, поэтому политика зависит от контракта.

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

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

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

Подробнее