Prep for a 1.2.4 release candidate

Maxim Dounin mdounin at mdounin.ru
Wed Oct 3 23:24:04 UTC 2007


Hello!

On Wed, 3 Oct 2007, Paul Lindner wrote:

> Okay, here's the changes I've committed to trunk:
[...]
>        * Add append command support written by Filipe Laborde.
>          Tests/protocol doc updates by Paul Lindner.

Please note: commited append command support from Filipe is NOT atomic
since it obtains previous item data in process_update_command() - i.e. 
before reading from network completes. Thus in theory one may change old 
data before new data will be linked in complete_nread(). It's not 
thread-safe as far as I see, too.

Several days ago I've developed more correct append/prepend patch (with 
the same syntax for append), it's available here:

https://mdounin.ru/hg/memcached/rev/e28ab6bd21fa

It's truly atomic and should be thread-safe since all actual work done in 
do_store_item() (which is locked when memcached used with treads). It's a 
bit more resource consuming though - since we can't be sure that nobody 
changes old data before we finish reading - we have to do memcpy() for new 
*and* old data.

Coresponding perl api changes (trivial - just new append/prepend commands 
mapped to generic _set()) available here:

https://mdounin.ru/hg/Cache-Memcached/rev/f5cfb726ea65

Maxim Dounin


More information about the memcached mailing list