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