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