July 12, 2010

moxi and vbuckets

Lots of great enhancements have gone into membase and memcached recently, and I'm especially excited with the new vbucket capability -- see: http://dustin.github.com/2010/06/29/memcached-vbuckets.html.  Say hello to the ability to explicitly migrate and replicate keys/values between servers, without downtime, while still keeping to memcached's uber performance.

And, moxi (the memcached/membase proxy) is keeping pace with the new vbucket improvements.  You can find the latest moxi open-source development work happening on the 'vbucket' branch here: http://github.com/northscale/moxi/tree/vbucket.

For those of you who like to look at more code, this latest moxi branch relies on a new C libvbucket hashing library that you can find here: http://github.com/northscale/libvbucket.  And, if you're a Java person, there's also a Java implementation of the vbucket algorithm, called jvbucket: http://github.com/northscale/jvbucket.

The other big improvement that you might want to know about in moxi is that we've moved away from XMPP as a management channel to a much simpler streaming REST/HTTP-based approach.  This allows us to continue to be able to dynamically update moxi processes (or other membase clients) with the latest cluster re-configurations.  Simpler == better.  The main changes here involved the libconflate library, which was updated to reflect the new REST/HTTP simplicity: http://github.com/northscale/libconflate.