consistent hashing: in Perl, standards

Just Marc marc at corky.net
Thu Apr 26 06:47:31 UTC 2007


As for a standard memcache client library, I'm all for a pure C version 
to be bundled with memcached.

Reasons:

1. C is harder than higher for most people to get right than higher 
level languages, hence competent people should be involved.
2. C is faster than higher level languages and memcache is all about 
performance.
3. The PHP memcache module uses the C library and I'm betting that's the 
most popular users of memcache in general.
4. The extreme urgency in the need to replace libmemcache is shown below:

Urgency:

1. Get the latest and apparently only available version 
http://people.freebsd.org/~seanc/libmemcache/libmemcache-1.4.0.rc2.tar.bz2 
(Feb 2006, nice!)
2. memcache.c:1520:mcm_get_line read this function through, in 
particular, lines 1554 to 1603.   Then look at 
memcache.c:2509:mcm_server_readable and try to imagine what happens if, 
for whatever reason, HAVE_SELECT is not defined.    Well, for some 
reason, configure failed to set this define on my vanilla Debian box.   
I watched my system interrupts sky rocket to 300+k/s.  Now imagine how 
many people have it running like that though in less busy environments 
and hence less impact.
3. I contacted the author about it a few weeks ago, sadly there was no 
response.
4. The rest of the code is a bit edgy, too, I'm guessing a patch to 
clean it up would be larger than the code itself.
5. With the above I mean no disrespect to the original author, it seems 
that he just doesn't have the time to maintain it like it needs to be.

Marc


More information about the memcached mailing list