> So, I would like to as, it it would be possible to add (internal) > compression mechanism to the memcached daemon. I was thinking about a > switch which would switch the compression on/off (and/or setting the > level) during memcached start. The data would be compressed > transparently, so no interface/protocol change will occur in fact (it > would only use less memory).
The *most* efficient thing for you to do is to use client compression, to be honest. I know it'll be annoying for you but that reduces bandwidth and doesn't centralize all the compression/decompression CPU into the server. *but*, if you want to go the server route, it'd probably be easiest for you to take the engine-pu branch (the 1.6 tree) and write a storage engine that compresses its values. Then you don't have to mess with it as much. Since I've been messing with the locks in the 1.4 tree, that code now has the potential do things like compression/decompression outside of any locks. Which means you could have memcached potentially use all cores in a box while doing server side compression. Those changes haven't been ported forward, but in all likelyhood the performance of the current 1.6 tree is more than you need already. Give it a look?
