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

    enyim committed Nov 21, 2011
    …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.
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.

    enyim committed Sep 19, 2011
    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.
  2. test if the sockets are released properly when the failure policy ove…

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

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

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

    enyim committed Aug 3, 2011
    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.)
Commits on Jul 28, 2011
  1. Changelog update.

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

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

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

    enyim committed Jul 18, 2011
    …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.)
  3. Nuget packages.

    enyim 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.

    enyim committed Jul 13, 2011
    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.
  2. Changed the flags to uint.

    enyim committed Jul 13, 2011
    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.
  3. Code cleanup.

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

    enyim 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.

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

    enyim committed Jun 5, 2011
  2. TestApp update.

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

    enyim committed Jun 5, 2011
    - 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.