It doesn't seem to be mentioned anywhere in the paper, but this is a description of the "consistent hashing" algorithm in Google's Guava library: http://docs.guava-libraries.googlecode.com/git/javadoc/src-h... I find it kind of funny that they created and released an apparently novel hashing method, and then waited 2.5 years to actually explain how it works.
It takes time and effort to do a writeup. And it is easy to procrastinate. That reminds me... A bit of a plug here. I have a cute nearly-minimal perfect hashing algorithm designed to have good cache-friendly properties. Briefly, it is somewhat similar to hopscotch hashing, only you pre-calculate the positions of the elements to put them into the 'best' spots by solving the assignment problem. Works for up to about 50…
A Fast, Minimal Memory, Consistent Hash Algorithm
21–24 of 24 posts
Re: A Fast, Minimal Memory, Consistent Hash Algorithm
#22This algorithm requires consistent mapping between nodes and (consecutive) integers--that's not something you get for free in distributed systems where nodes may join or leave the pool at any time.
Re: A Fast, Minimal Memory, Consistent Hash Algorithm
#23It seems a simple key mod bucket_size works to divide a workload based on a numeric key. I imagine this has a different distribution which works better for certain use cases. Anyone have an example of when mod will fail for something like this? Edit: The paper covers this.
Re: A Fast, Minimal Memory, Consistent Hash Algorithm
#24It seems a simple key mod bucket_size works to divide a workload based on a numeric key. I imagine this has a different distribution which works better for certain use cases. Anyone have an example of when mod will fail for something like this? Edit: The paper covers this.