Notes from the fourth memcached hackathon of undetermined
frequency
Dustin Sallings
dustin at spy.net
Wed Apr 16 22:40:36 UTC 2008
On Apr 16, 2008, at 15:22, mike wrote:
> On 4/16/08, Dustin Sallings <dustin at spy.net> wrote:
>
>> * get (returns an object or error; does not return key)
>> * getq (returns an object; does not return missing; does not
>> return
>> key)
>
> is the "q" something like "get quietly" ?
Yes, it's the quiet get we defined from the first meaning. It only
returns data, never returns anything on a miss (but could signal an
error).
>> * getk (returns an object with key or error)
>> * getkq (returns an object with key; does not return missing)
>
> Do any of these return a "cache miss" message, or does it only return
> if there is an error? If I read this right, "get" and "getk" both
> return a miss...
That is correct. You do not get a cache miss message for q commands.
> I could see client libraries benefitting from a "miss" message (for
> all I know it could already be in the protocol though and my client
> just doesn't do anything with it.)
Clients and servers benefit greatly from *not* having miss messages.
Imagine needing 1,000 keys for which only 100 are actually in the
server. You could issue 1,000 quiet gets and a noop (or 999 getq
commands and a get) and only have to deal with hits. The misses are
implied.
This is the same way the text protocol works today, except it's been
generalized slightly more and made a bit easier to deal with by not
having to have one command that takes an arbitrary number of variable
width keys that the server has to understand how to separate. All the
server wants to know is whether you want a response on a miss, and
(now) whether you want the key returned as well.
--
Dustin Sallings
More information about the memcached
mailing list