mdelete and Cache::Memcached::delete_multi()

dormando dormando at rydia.net
Thu Nov 15 18:29:04 UTC 2007


> Hmm, maybe I don't get the code, but I think the server may switch
> from conn_write to conn_read only on TRANSMIT_COMPLETE, i.e. it pushes
> full responce before reading the next request.  The test case could
> tell, but lazy to write one.

I didn't map the whole thing out, but it'll just create a 
TRANSMIT_SOFT_ERROR each time, which just stops processing for the 
write. Since the socket's listening on the "writable" event, it'll pull 
from the iovecs the next time it's able to.

> 
> If 'reply' and 'noreply' commands are mixed, it seems like an
> unnecessary overhead to wrap a single command with on/off.  OTOH for a
> bunch of commands 'noreply' in every of them is an overhead.  Still,
> per-command parameter better suits for libraries with one binding per
> command.  So on/off might have its uses, but kinda orthogonal to
> 'noreply'.

I think we're aiming for orthogonal. Although none of these options 
really sit that well with me.

With noreply you can still end up doing:

set blah 0 0 2
hi
set another 0 0 3 noreply
bye
set more 0 0 3
foo

... then when you read, did the error come from the first or third set?

... and with silent, single-threaded clients need to ensure they don't 
inject another thread's commands in the middle of an altered 
connection's state.

-Dormando



More information about the memcached mailing list