consistent hashing: in Perl, standards

Tres Seaver tseaver at
Wed Apr 25 16:00:37 UTC 2007

Hash: SHA1

Alex Stapleton wrote:
> Is this meant to be a thread about algorithms or a thread about  
> implementations of algorithms?
> Personally I think we should be working towards having a standard C  
> implementation of a memcached client that can be linked in as a  
> library for other languages. (I've done some work on this already  
> actually...)  C afterall is the LCD for pretty much every language we  
> care about right? Which means I think we should simply be hacking on  
> top of Ketama or a fork or start from scratch :) Is there some  
> advantage to having lots of client implementations in various  
> languages that I'm not aware of?

I can think of two, based on lots of experience with writing and
maintaining C extensions in Zope:

 - A "C-with-wrappers" approach is inherently less portable than a
   "pure" implementation in a language like Python, Perl, or PHP;  even
   if the wrapper itself is squeaky clean and builds everywhere, it
   still creates a barrier to distribution for users (mostly on Windwos)
   who don't have compilers on hand.

 - It is much easier to develop the library in a higher-level language,
   which is important when adding new features, etc.:  the pattern we
   have adopted in Zopeland is to have the "reference" implementation
   written in Python, with the C version used (if available) as an
   optimization;  there are hooks for disabling the C versions,
   which allows for testing the applicaiton against the easier-to-verify
   Python implementation in cases where there may be a bug in the
   C version.

- --
Tres Seaver          +1 540-429-0999          tseaver at
Palladion Software   "Excellence by Design"
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla -


More information about the memcached mailing list