შეწყვიტეთ მთელი ტრაფიკის ერთ გასაღებზე მიმართვა: დაყავით hot key N sub-key-ად (sharded counter-ები), გააერთიანეთ დუბლიკატი read-ები, ემსახურეთ ლოკალური cache-იდან და batch გააკეთეთ write-ებს, რომ ერთი მწკრივი ყოველ request-ზე არ განახლდეს. ერთი "likes" counter ვირუსულ პოსტზე შეიძლება 50k write/წამს იღებდეს — ერთი მწკრივი serialization bottleneck-ად იქცევა, რადგან ყოველი transaction ერთ lock-ს ეცილება.
Fan-out ერთი contended მწკრივის ნაცვლად
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)
