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
