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