Hey, I've wrapped a 1.2.4-rc1 release candidate for memcached.
Fetch it here: http://danga.com/memcached/dist/memcached-1.2.4-rc1.tar.gz ... and give it a beatdown! Report any bugs or ugliness to the list. I've merged all non-feature oustanding patches that I can find. We've made append/prepend/cas work in a way we all seem to like. I'll write more documentation and detail for new users on these features after the official release. For now I'd love to see some testing. First, my "last" fix for CAS (I'm sure there're even more bugs...) was really ugly. Please allow me to explain myself before lynching: -- I couldn't figure out how to store a temporary buffer and "free" it after the transmit function. There isn't really a good place to plug that in. The msg handling code should be abstracted up one more layer, so the transmit function can call a msg's "free" function when it's sure all of its logical data has been sent. This isn't that hard, but it's more work. Since I've committed code that has added to the ugly, I'll volunteer to later fix the ugly and remove the need for suffixlist and ilist entirely from the connection structures. I'd happily invite anyone else to attempt though ;) The idea behind my final patch was to lower memory overhead for non-users of CAS. The easy way out would be to extend the item suffix size and always write the CAS value in. Then on process_get_command(), you would toss the suffix into an iov based on whether or not you wanted the CAS value to be printed. But for users with millions of small items, that would offer a significant percentage of overhead, so I moved the ugliness to the connection structure and added a global freelist for "suffix buffers", which are then reused for CAS commands. Which appears to make 'gets' and 'cas' work as expected. So, again, please, give this a bit more of a beatdown and send patches, feedback, etc, straight to the list (not me!). We would love to tag and stamp 1.2.4 as final within the next few days, so we all may shift focus to completing the binary protocol branch. I'll be sending a followup either later tonight or tomorrow with a merge of Dustin's external binary tree. Have fun! -Dormando
