binary protocol notes from the facebook hackathon

Trond Norbye 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...

Trond Norbye

More information about the memcached mailing list