Hi!

I saw some talk about memcached proxies on the list today, so figured
it'd be good to let you all know about "moxi", a new open-source
memcached proxy.  Dustin Sallings, Matt Ingenthron and I have been
working on it, where moxi fits together the latest memcached (1.4) and
libmemcached projects.  License is BSD, and more info's at...

  http://labs.northscale.com/moxi

We needed something that spoke memcached binary protocol, initially on
the proxy-to-memcached side of things, and wanted something that could
be kept up to date with the latest memcached + libmemcached features.

The idea with moxi is that webapp processes and scripts connect to it
running at localhost:11211.  Then, moxi multiplexes traffic to a pool
of memcached servers.

On compatibility, moxi passes the same test suite as memcached, except
for the ones that don't make sense for a proxy, eg testing "dash-M"
command-line flags.  There are also new test cases to exercise
proxy-only features and topologies.

moxi also supports protocol conversions, so webapp processes and
scripts can still speak ascii protocol, while moxi can optionally use
binary protocol to speak to memcached servers.

One possibly useful optimization: moxi has a configurable front cache,
so it can keep a small number of hot items in moxi's memory, saving on
wire network hops.  In other words, an L1 cache.

Another optimization, moxi can de-deplicate concurrent GET requests
for popular keys, based on ideas from Dustin Sallings' spymemcached
client.  See: http://code.google.com/p/spymemcached/wiki/Optimizations

There are more features and ideas in plan, but they're more
work-in-progress.  Appreciate any feedback, share what you want to
see, not see, etc.

Cheers,
Steve

Reply via email to