Thanks for this interesting contribution. I'm not totally sure if I understand the purpose of this though. Libmemcached already does all the hard work of creating the pool, fail-over, protocol parsing etc. I can see the advantage of the optimizations that you put into the moxi such as Multi-get Escalation and Protocol Pipelining, but at the same time have the fear of adding a new SPOF. I also don't understand how the L1 cache deals with cache updates. It seems that L1 cache would only work if you have 1 moxi instance running which would by definition be a SPOF?
Could you explain why you need moxi in your environment? I think moxi would (only?) be useful in situations where the client currently does not efficiently manage the connections to the memcached server? For example if you have a client which does not do persistent connections; then connecting to a local moxi would be far more efficient because of the reduced delay for establishing the connection.
