Что такое sharded map?

Middle
179 просмотров
AFK Offer AI

Sharded map — map разбитый на N частей (shards), каждая со своим mutex. Ключ хешируется, hash % N определяет shard. Горутины, работающие с разными shards, не блокируют друг друга. Снижает lock contention в N раз. Типичное N: 32-256. Реализация: type ShardedMap struct { shards [N]struct{ mu sync.RWMutex; m map[string]V } }. Библиотеки: orcaman/concurrent-map. Используется в кешах, rate limiters, метриках. Если RWMutex map — bottleneck на профиле, шардинг решает.

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

Как делать backward compatible changes?