Client interoperability, server selection.

Tomash Brechko tomash.brechko at
Sun Mar 9 19:53:51 UTC 2008

On Sun, Mar 09, 2008 at 11:23:31 -0700, Dustin Sallings wrote:
> 	As someone mentioned, ketama does use all of the md5,

For continuum generation---yes, but on every request it computes MD5
of the key, and then uses 4 lowest bytes of that (see ketama_hashi()
function).  Not to say that selected 4 bytes of MD5 may have different
distribution properties and the like.

> 	At this point, ketama is a baseline as it is the de facto standard.

Since Russ of seem to not mind changing the implementation
slightly, I'd rather take this opportunity and replace MD5 with
something else (and also use binary numbers in place of

   sprintf( ss, "%s-%d", slist[i].addr, k );

for point generation).

It's not like I experience problems implementing the algorithm as it
is, I mentioned shared memory just to clarify why one might hesitate
linking with libketama blindly.  But I don't want the clients to have
"compatible ketama or fast ketama---choose any" "flexibility" in them

   Tomash Brechko

More information about the memcached mailing list