TGViewer
Golang Юниор Golang Юниор @golangprofi · 4.98K subscribers
Post #795 1.49K
👣 Почему один Mutex может убить производительность Go-кэша

Интересный разбор для тех, кто пишет кэш в Go и думает, что проблема решается простым sync.RWMutex.

Автор прогнал 6 вариантов дизайна кэша и показал неприятную вещь: один общий lock быстро становится бутылочным горлышком. Чем больше горутин лезет в кэш, тем сильнее они начинают мешать друг другу.

Самый практичный вывод: шардируйте locks.

Вместо одной большой map под одним mutex кэш делится на несколько shard’ов. Каждый shard хранит свою часть данных и имеет свой lock. В итоге разные goroutine чаще работают с разными locks, меньше ждут друг друга и лучше используют CPU.

Отдельно интересно, что sync.RWMutex не всегда спасает. На смешанной нагрузке с чтением и записью его накладные расходы могут оказаться заметнее, чем кажется. А sync.Map тоже не превращается в универсальную кнопку «сделать быстро».

Хороший материал про то, почему производительность в Go часто ломается не на алгоритме, а на конкуренции за одну общую точку.

Статья: «Shard your locks: benchmarking 6 Go cache designs»
https://strebkov.dev/posts/shard-your-locks/
  • ❤ 1
  • 🤣 1
More from @golangprofi
  1. Sep 16, 2026Golang for Jobseekers Автор: Bin Noorazman Hairizuan Год издания: 2023 #go #en Скачать кни…
  2. Sep 16, 2026Разница между Go-разработчиком с зарплатой в 100–200 тысяч и 500 тысяч не в количестве нап…
  3. Sep 14, 2026⚡️ Вакансии по Go за неделю: 6️⃣ Senior Go Developer GGR Global Senior · Remote · $4 000 –…
  4. Sep 13, 2026⚡️ Google выпустили официальный пакет для работы с JSON Schema в Go Это библиотека для вал…
  5. Sep 13, 2026⚙️ System Design: проектирование масштабируемых систем — новый курс на Mentorix Нагрузка,…
  6. Sep 7, 2026⚙️ Вакансии по Go за неделю: 📥 Стажер Go-разработчик Авито Part time · Junior · Hybrid 📥…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →