The slab stats test will return nothing if there have never been any values added (thus any slabs created).
In the latest code, Toru made sure all result packets contain the requested opaque. No magic and no 0.
Theoretically, this can work with default values as well, but only in the binary protocol. Getting this to work with the text protocol would likely be quite painful. http://code.google.com/p/spymemcached/issues/detail?id=12
I've got some tool that complains about various things it thinks I might be doing wrong.
corrected Boolean encoding and added Character support
This functionality was removed after we all agreed it was confusing as 1157f3c in memcached by Trond Norbye (merged in by Toru). Mon Jul 28 17:55:41 2008 +0900 That ID will probably be killed off by a rebase.
This seems to happen in some strange server-error cases where the server short-circuits the connection. This situation has shown itself when we've sent something too large into the server. Precautions have been taken to prevent that exact thing from happening again, but this is a better way to handle an unexpected state. I'm not sure how we end up still having data to receive when we've already thrown away the ops, but tearing down the connection is a clean way to recover from a bad state.
This will avoid a few problems people have encountered. I implemented it with a somewhat early IllegalArgumentException because it was the surest way to cover every case given compression and several paths in to sets.
An interface enables mocking for any users of the MemcachedClient.
The same work still needs to happen for one-off gets, but this should help allow the IO thread to focus on IO while consumer threads distribute the more CPU-intensive work.
…ions. Whenever a read returned in the binary protocol without having read enough bytes to fill a header packet, an NPE would be fired that would cause us to disconnect from the server and cancel all in-flight operations. This happened occasionally in one of my tests and was rather a pain to track down. It likely never affected anyone since I doubt anyone is actually using the binary protocol anywhere today.
…fied. By default, the read queue is 10% larger than the input queue. With a sufficiently large op read queue, it's possible to never internally overflow, but correct values are likely application-specific.