ketama - a consistent hashing algo for memcache clients

Russ Garrett russ at last.fm
Wed Apr 11 11:16:15 UTC 2007


Two things to add to this:

1) The PHP ext works fine on PHP5.
2) There is no problem building php_ketama as a dynamic extension in the 
standard way (i.e. phpize; ./configure --with-ketama; make; make install)

Russ

Christian Muehlhaeuser wrote:
> Hey memcached-ml!
>
> Introduction first: my name is Christian Muehlhaeuser (or muesli) and
> I'm working with RJ (Richard Jones) on ketama, which he just announced
> here recently.
>
> I thought I should post a little install howto and add some notes
> about known issues / my current TODOs. Also, if you happen to find a
> bug in ketama, please mail us! Patches are always welcome as well, of
> course ;-)
>
> First of all, please note that I just updated the tarball, so please
> redownload it from here:
> http://static.last.fm/ketama/ketama-0.1.1.tar.bz2
>
> Installation
> ============
>
> * libketama (the general purpose C library)
>
> $ cd libketama
> $ make
> $ su -c "make install"
>
> This will compile libketama and install it to the default prefix 
> /usr/local.
> You can change the prefix by editing the PREFIX variable in 'Makefile'.
>
> * php_ketama (PHP4 extension that wraps libketama and therefore 
> depends on it)
>
> $ cd php-4.4.x/ext
> $ ln -s /your/ketama/php_ketama ketama
> $ cd ..
> $ rm -Rf autom4te.cache
> $ ./buildconf --force
> $ ./configure --all_your_configure_options 
> --with-ketama[=/your/ketama/prefix]
> $ make
> $ su -c "make install"
>
> Don't forget you might have to restart your httpd!
>
> TODOs
> =====
>
> * It's a known issue that libketama might crash (in ketama_roll) if
> the server definitions file doesn't follow the formatting standards
> ("ip:port_\t_unsigned integer_\n", without the underscores and
> quotes). This currently got the highest priority on my TODO list and
> will be fixed in the next release. Sorry about that.
>
> * Instead of storing the servers as a char[22] in the continuum, we
> will start using sockaddr_in / in_addr. This also allows us to easily
> check for validity of a sever address.
>
> cheers,
> muesli
>



More information about the memcached mailing list