You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ketama is the one that pylibmc supports but since the protocols between the clients aren't 100% compatible there isn't any reason to completely follow their lead.
The text was updated successfully, but these errors were encountered:
After doing a bunch of testing I've decided to go with clandestined. It uses a C extension for the murmur3 hashing algorithm which is pretty much necessary for performance requirements but I think its fine. So using this wont be "pure python" anymore but clandestined works with py2,py3, and pypy.
My test with 10,000 keys, this distribution looks like this:
Before Removal
After Removal
You can see using HRW (Rendezvous) balancing with a Murmur3 hash we are able to prevent any hotspots and evenly distribute the keys across all our servers.
I also checked how many keys would have to be redistributed if we dropped off on server and get the following:
Murmur3 had the most evenly distributed keys and had to rebalance the lease amount. Ketama (which is what pylibmc uses) has the worst amount of hotspots and has to redistribute the most.
Options:
Ketama is the one that
pylibmc
supports but since the protocols between the clients aren't 100% compatible there isn't any reason to completely follow their lead.The text was updated successfully, but these errors were encountered: