எல்லா traffic-ஐயும் ஒரே key-க்கு funnel செய்வதை நிறுத்துங்கள்: hot key-ஐ N sub-keys ஆகப் பிரியுங்கள் (sharded counters), duplicate reads-ஐ coalesce செய்யுங்கள், ஒரு local cache-இலிருந்து serve செய்யுங்கள், மேலும் writes-ஐ batch செய்யுங்கள், இதனால் ஒரு row ஒவ்வொரு request-இலும் update ஆகாது. ஒரு வைரல் post மீது ஒரு "likes" counter 50k writes/sec எடுக்கலாம் — ஒவ்வொரு transaction-ம் ஒரே lock-க்காகச் சண்டையிடும்போது ஒரு row ஒரு serialization bottleneck ஆகிறது.
ஒரு 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)
