binary wire protocol in memcached

Dustin Sallings dustin at
Tue Aug 28 03:39:04 UTC 2007

	I just got memcached passing all of my tests with the binary wire  
protocol (tcp).  Sorry it took me so long to get going on it.

	I've implemented this as a patch stack (using mercurial queues) over  
trunk r608 with Evan Miller's 64-bit counter patch applied (since  
everyone is excited by big numbers).  I've got no idea where (if  
anywhere) active development is going on.  I can pick it up and move  
it needed.

	I don't know what clients are ready.  I haven't done a release of my  
java client with binary protocol support yet, but I can roll out a  
pre-release if someone wants to try it (all of my interop tests pass  
between my java client and memcached in binary mode, so I just need  
to clean it up a bit).  My test python client is functional for at  
least interactive use as well.

	Known issues:

	I didn't implement a timeout on delete.  I suppose I should, but do  
people actually use that?

	I didn't implement a timeout on flush.  I'd rather avoid that one if  
possible because the semantics are really confusing.

	I basically ignored managed buckets because I have no idea how they  

	My 64-bit ntohl kind of thing might not work on big endian machines  
(I haven't tried it yet).  Moreover, I would hope something like that  
would already exist somewhere, so I didn't bother making it fast.

	I've only implemented version, flush, noop, set, add, replace, get,  
getq, delete, and incr.  Besides stats (for which we have no clearly  
defined packet format), there seem to be other commands in there that  
don't make much sense to me.

	There may be more, but I don't know about them yet.

Dustin Sallings

More information about the memcached mailing list