Re:View Counting at Reddit
by BillinghamJ on Saturday May 27, 2017 @05:26PM
(#14432045)
Redis writes are atomic - you just use the increment function
[ Parent
| on HN ]
Writes are atomic in redis because redis is single threaded. So you are bounded by how fast redis can write. If you try to write any faster then redis can handle you'll get queueing or errors.
The wonderful thing about HyperLogLogs is that you can split the counter in N servers and "merge" the registers later, in case you want an architecture that shards the same counter in multiple servers. But sharding directly by resource looks simpler actually...
Run enough redis servers to handle the load. Choose a server by hashing a user id. Total = sum of counts from all servers.