binary protocol notes from the facebook hackathon
Trond.Norbye at Sun.COM
Wed Jul 11 08:55:53 UTC 2007
Clint Webb wrote:
> I agree. Thats one thing I noticed about the protocol when I was
> reading my email on the train this morning.
> Keeping the original structure would make it difficult to change the
> fixed-width parameters given to a command.
> Having an offset would mean that the key can be found much easier.
> However, care should be taken that the offset given doesnt go out of
> the bounds of the message. I'm not in total favour of an offset
> either, because in this case, you're basically moving the calculation
> from the server to the client.
> What I prefer is:
> * Magic byte / version
> * Cmd byte
> * 4 byte opaque id.
> * Key len byte (if no key, 0)
> * key, if key length above is non-zero.
> * 4 byte body length (not including reserved byte at the end)
> * [ cmd-specific fixed-width fields ]
> * [ cmd-specific variable-width field ]
> * Reserved byte (should be 0)
> What I additionally prefer, is a total packet length after the magic
> byte, but that might meet substantially more debate.
I would also prefer a total length field. This would let me easily
determine if I have the complete packet or not without searching through
the packet and look for the various length fields...
More information about the memcached