Commits on Dec 12, 2011
  1. Try to detect when a node is diconnected by cutting the LAN cable. (A…

    …s in 'the socket is not closed properly'.)
    The MessageStreamListener will create a timer which tries to connect to the pools start url (/ppols/default) in every 10 seconds. If it fails then the node is down and it moves over to the next.
    The problem comes from the fact that the 'pool streaming uri' is a comet style uri whihc must be read indefinitely. However the nodes only send data very rarey -- when the configuration change. So when a node is disconnected forcefully (by cutting the LAN cabel or disconnecting its VM) we have no way to figure out that no data is coming because the configuration did not change, or because the server is not there.
    It'd be more easier if the server'd send an "I am alive" message every 30 seconds or so.
    committed Nov 21, 2011
Commits on Oct 5, 2011
Commits on Oct 3, 2011
Commits on Sep 19, 2011
  1. Rolled back the Get(IEnumerable) to its old implementation.

    The new, async version was failing under very heavy load due to a concurrency bug which I am not able to find.
    See Issue #76 and the issue76 branch for a test application.
    committed Sep 19, 2011
  2. test if the sockets are released properly when the failure policy ove…

    …rrides the pool's decision.
    committed Sep 19, 2011
Commits on Aug 26, 2011
  1. Release dead connections so the pool can create new ones when the fai…

    …lure policy keeps the socket pool alive.
    committed Aug 26, 2011
Commits on Aug 13, 2011
  1. Recovery timer must be started even if we have a VBucket config. (Thi…

    …s handles client side disconnects.)
    committed Aug 13, 2011
Commits on Aug 3, 2011
  1. Failure policy implementation.

    Users can now customize how and when a node should fail after an error occures.
    The default behavior is the FailImmediatelyPolicy whihc behaves exactly as the previous version of the cliend did: fail a node when an error occures.
    Also included the ThrottlingFailurePolicy which only fails a node if N failures happen in T time. If there is at least T time between two failures, the node's state will not change. This is useful where the nodes are healthy but occasionally receive timeouts occur. (E.g. sometimes receiving large data but the client is configured to use an extremely small receive timeout value.)
    committed Aug 3, 2011
Commits on Jul 28, 2011
  1. Changelog update.

    committed Jul 28, 2011
Commits on Jul 27, 2011
  1. Build script fixes.

    committed Jul 27, 2011
Commits on Jul 20, 2011
Commits on Jul 19, 2011
Commits on Jul 18, 2011
  1. Merge branch 'master' of

    …into iamkrillin-master
    committed Jul 18, 2011
  2. Mark the vbucket state properly in the internal state of the MembaseP…

    …ool. Fixes #71
    If a client disconnected it switched to ketama locator. (Server fails were properly reinitializing the pool, because the cluster sent an updated config after a failover.)
    committed Jul 18, 2011
  3. Nuget packages.

    committed Jul 18, 2011
Commits on Jul 15, 2011
Commits on Jul 14, 2011
Commits on Jul 13, 2011
  1. Added support for byte and sbyte serialization.

    Byte and SByte were serialized using the BinaryFormatter (this was an oversight). Now they really take up only one byte. Byte values serialized previously will only be changed to the new mode after they are loaded then stored again.
    committed Jul 13, 2011
  2. Changed the flags to uint.

    Flags were ushort for historical reasons, but the binary protcol supports uint, so it made sense to switch. Text protocol is going to be obsolete anyways.
    committed Jul 13, 2011
  3. Code cleanup.

    Removed the obsolete Port&Credentials members from the configuration and got rid of some compiler warnings.
    committed Jul 13, 2011
Commits on Jul 7, 2011
Commits on Jul 4, 2011
Commits on Jun 14, 2011
  1. Forgot the changelogs.

    committed Jun 14, 2011
  2. Fixes #65 - Getting multiple keys twice in a row fails

    unknown committed Jun 14, 2011
Commits on Jun 8, 2011
  1. Changelog update.

    committed Jun 8, 2011
Commits on Jun 5, 2011
  1. Fix refs in the changelog.

    committed Jun 5, 2011
  2. TestApp update.

    committed Jun 5, 2011
  3. CasResult now contains the status code of Set/Add/Replace operations.

    - Status codes are protocol and engine (membase, default, etc.) specific. Text protocol does not support them.
    - Currently only the Cas operation exposes them. Cas() without specifying the cas value behaves the same way as Store(), only their return value differs.
    committed Jun 5, 2011