Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Oct 19, 2008
  1. Got rid of workarounds for binary stats problems.

    In the latest code, Toru made sure all result packets contain the
    requested opaque.  No magic and no 0.
  2. @nbrachet

    Asynchronous incr/decr with no default.

    nbrachet authored committed
    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.
  3. Update license copyright.

Commits on Oct 18, 2008
  1. Miscellaneous test code cleanups.

    I've got some tool that complains about various things it thinks I
    might be doing wrong.
  2. @magictoken

    Whalin V1 compatible transcoder.

    magictoken authored committed
  3. Updated copyright info.

Commits on Oct 17, 2008
  1. @magictoken

    fixes for Whalin compatible transcoder.

    magictoken authored committed
    corrected Boolean encoding and added Character support
Commits on Oct 15, 2008
  1. Binary stat support.

  2. Remove support for hold values on deletes.

    This functionality was removed after we all agreed it was confusing as
    1157f3c5ce25918558781bd2207b6b6de702dd17 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.
Commits on Oct 4, 2008
Commits on Oct 3, 2008
  1. if the memcache server disconnects, try to notice.

    Robey Pointer authored committed
  2. If we attempt to read when we don't have anything to read, reconnect.

    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.
  3. Throw an exception if we attempt to store data we know is too big.

    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.
  4. Minor warning fix.

Commits on Oct 2, 2008
  1. @kreide
Commits on Sep 21, 2008
  1. @nbrachet

    Default for incr should be a long.

    nbrachet authored committed
  2. @nelz9999

    Extract a MemcachedClient interface.

    nelz9999 authored committed
    An interface enables mocking for any users of the MemcachedClient.
Commits on Aug 29, 2008
  1. @kreide

    Decode async bulk gets outside of the IO thread.

    kreide authored committed
    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.
Commits on Jun 6, 2008
  1. @nelz9999

    More consistent hash proving.

    nelz9999 authored committed
Commits on May 27, 2008
  1. Killed off a slightly elusive bug that was causing sporatic cancellat…

    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
    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.
  2. @nelz9999
Commits on May 14, 2008
  1. Allow the input, op read and op write queues to be individually speci…

    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
  2. Updated delete documentation.

  3. Read before writes and expect IllegalStateException.

    These are two measures that are helping with the queue overflow
    Firstly, the IllegalStateException is thrown whenever you attempted to
    add to a queue that's full.  If that happens internally, I don't want
    the IO thread to crash, so I add it to the normal ``expected
    exceptions'' list.
    Secondly, reading before writing helps keep the read buffer ready for
    new data.  When writing first, the write will have to transition to a
    read and may cause the read buffer to overflow.  It still may happen,
    but by servicing the reads first I can at least get the complete ones
    popped out before piling new ones in (since writes are almost always
    smaller and likely to transition).
Something went wrong with that request. Please try again.