Commits on Oct 3, 2008
  1. if the memcache server disconnects, try to notice.

    Robey Pointer committed with Jul 21, 2008
  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.
    committed Oct 2, 2008
  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.
    committed Oct 2, 2008
  4. Minor warning fix.

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

    Default for incr should be a long.

    nbrachet committed with Sep 20, 2008
  2. @nelz9999

    Extract a MemcachedClient interface.

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

    Decode async bulk gets outside of the IO thread.

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

    More consistent hash proving.

    nelz9999 committed with Jun 5, 2008
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.
    committed May 26, 2008
  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
    committed May 14, 2008
  2. Updated delete documentation.

    committed May 13, 2008
  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).
    committed May 13, 2008
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.
    committed May 11, 2008
  2. buildr 1.3 is not ready for me.

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

    The previous one passing when assertions weren't enabled.
    Must test the tests.
    committed May 10, 2008
  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.
    committed May 10, 2008
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.
    committed May 3, 2008
  2. Removed some dead code.

    committed May 3, 2008
  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.
    committed May 3, 2008
  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.
    committed May 3, 2008