Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Oct 3, 2008
  1. if the memcache server disconnects, try to notice.

    Robey Pointer committed with
  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 committed with
  2. @nelz9999

    Extract a MemcachedClient interface.

    nelz9999 committed with
    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 committed with
    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 committed with
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).
Commits on May 13, 2008
Commits on May 11, 2008
  1. Turning the timeouts way up during tests.

    I manage to do something that slows stuff down in my full test plan
    which leads to spurious failures.
    This may be hinting at a bug of some type, or perhaps some bad
    defaults, but this code isn't attempting to test timeouts so they
    should never get in the way.
  2. buildr 1.3 is not ready for me.

    Revert "Updates for a newer version of buildr."
    This reverts commit 0fcb055.
  3. Smarter assertion check test.

    The previous one passing when assertions weren't enabled.
    Must test the tests.
  4. Test fix. Invalid connections shouldn't fail to shut down.

    I think there may be a bigger bug around this, but it only occurs when
    trying to shut down a connection that shouldn't've started due to
    someone writing a broken connection factory, so I think we can live
    with it.
Commits on May 9, 2008
Commits on May 5, 2008
Commits on May 3, 2008
  1. Added some negative tests for prepend/append and found some bugs.

    Turns out the ``not found'' error for prepend and append is different
    from that of other commands so I needed to make a case for it.
  2. Removed some dead code.

  3. Make zero byte packing optional in transcoder utils.

    This is primarily because I don't know for sure the Whalin client
    would know what to do if it saw a 0 byte long.
  4. Some tests on the parent class of the serializing transcoders.

    This helps me ensure the contract of certain methods, and (shockingly)
    found some minor bugs in edge cases.
Something went wrong with that request. Please try again.