binary wire protocol in memcached
Dustin Sallings
dustin at spy.net
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
work.
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