by mattdennewitz on 6/26/17, 10:11 PM with 45 comments
by alxv on 6/26/17, 11:12 PM
by zubspace on 6/27/17, 7:58 AM
Problem with consistent hashing:
However, consistent hashing comes with its own problem: uneven distribution of requests.
Because of its mathematical properties, consistent hashing only balances loads about as
well as choosing a random server for each request, when the distribution of requests is
equal. But if some content is much more popular than others (as usual for the internet),
it can be worse than that.
Problem with Power of 2 Load Balancing: Why wasn’t there a way to say “use consistent hashing, but please don’t overload any
servers”? As early as August 2015, I had tried to come up with an algorithm based on
the power of two random choices that would do just that, but a bit of simulation said
that it didn’t work. Too many requests were sent to non-ideal servers to be worthwhile.
Instead, he used something called Consistent Hashing with Bounded Loads.[1] https://medium.com/vimeo-engineering-blog/improving-load-bal...
by throwaway13337 on 6/26/17, 10:48 PM
This solves caching too since you are only ever receiving and caching user data on a single server. No cache communication required. You can enforce it on the server side for security as well.
Doesn't require a load balance server - just an extra line of code.
Keep it simple.
by euph0ria on 6/26/17, 10:43 PM
1) Θ( log n = log / log n )
2) Θ(log log n)
by gopalv on 6/26/17, 11:03 PM
I like 2Choice because it is not dependent on hash function design & is temporal, but I have a positive aversion to the 2^n hash distributions when it comes to data, specifically for distributed systems which need to flex up/down [1].
by scame on 6/27/17, 9:54 AM
by adrianratnapala on 6/27/17, 3:06 AM