تمام traffic کو ایک key پر بھیجنا بند کریں: hot key کو N sub-keys (sharded counters) میں تقسیم کریں، duplicate reads کو coalesce کریں، ایک local cache سے serve کریں، اور writes batch کریں تاکہ ایک row ہر request پر update نہ ہو۔ ایک viral post پر ایک واحد "likes" counter 50k writes/sec لے سکتا ہے — ایک row ایک serialization bottleneck بن جاتی ہے کیونکہ ہر transaction اسی lock کے لیے لڑتا ہے۔
ایک contended row کے بجائے fan-out
50k inc/sec on post:123
│
hash(request) % N (split the key)
┌────────┬────────┬────────┬────────┐
▼ ▼ ▼ ▼ ▼
likes:123:0 :123:1 :123:2 :123:3 :123:4 ← sharded counters
└────────┴───┬────┴────────┴────────┘
▼
SUM on read = total (read fans in)
