Что такое thundering herd?

Senior
357 просмотров
AFK Offer AI

Thundering herd — проблема, когда множество процессов одновременно просыпаются или ломятся к одному ресурсу. Классический пример: ключ в кэше протух, и 1000 запросов одновременно идут в БД за одними и теми же данными. Решения: singleflight в Go (только один запрос идёт в БД, остальные ждут его результат), lock-based cache refresh (один процесс обновляет, остальные читают старое), staggered TTL (разный срок жизни для разных ключей). В Go пакет golang.org/x/sync/singleflight создан именно для этого.

Следующий вопрос

Какие zero values у разных типов?