ketama consistent hashing update

Dustin Sallings dustin at
Fri Aug 10 16:57:28 UTC 2007

On Aug 10, 2007, at 5:46 , Mikael Johansson wrote:

> Some sort of standardization on a hash function and how the servers  
> are mapped
> would be much appreciated, I only used CRC32 because it's already  
> available and
> generates a nice 32-bit hash, but switching to FNV or something  
> other should be
> trivial given that an open source implementation compatible with  
> the PHP license
> exists.

	It seems to me like it would be better to standardize the mechanism  
separately from the hash function and have minimal requirements on  
the hash function availability.

	It's a subtle difference, but there are two separate issues here and  
I don't think there's a good reason for them to become too tightly  
coupled in specification.

	In my implementation, I have HashAlgorithms and NodeLocators.  That  
allows me, for example, to mix the consistency of ketama with the  
constant-time (approximately, due to memoization) hashing of java's  
native hash where I only have java clients.  If I start mixing client  
languages, I can immediately use the baseline hash or implement  
java's hashing in other languages.

Dustin Sallings

More information about the memcached mailing list