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