Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Couchbase .NET client library (official), based on the Enyim memcached client
C#

NCBC-808: Append/Prepend/Incr/Decr use retry path

Motivation
----------
All operations, including Append, Prepend, Increment and Decrement, can
and should retry when a NotMyVBucket error is returned.

The introduction of the RequestExecuter, and the Couchbase bucket
implementation for it is consistent with this statement, however the
executer is not invoked by the CouchbaseBucket for these operations.

Modifications
-------------
Make CouchbaseBucket use the RequestExecuter's SendWithRetry method.
Still use GetServer to retrieve the vbucket so that it can be given to
the operation (since this is not a memcached bucket).

Removed dead code (CheckConfigForUpdate method in CouchbaseBucket).

Result
------
Increment/Decrement/Append/Prepend use the common path for operation
execution with retry support. They'll now be retryed in case of NMV in
Couchbase buckets.

Increment and Decrement are otherwise listed as non-retriable, whereas
Append and Prepend can be retried if the status permits it and Cas > 0

Change-Id: I7919eb6337e8fe8eadc584cd185fedf67b5de5a4
Reviewed-on: http://review.couchbase.org/48805
Tested-by: Simon Baslé <simon@couchbase.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
latest commit f73e034b30
@simonbasle simonbasle authored jeffrymorris committed

README.md

Official Couchbase .NET SDK

  • master is 2.0 development branch
  • release13 is 1.3.X development branch

Running the Unit Tests

To run the unit tests (for master), the following are required:

  1. Couchbase Server >= 3.0 installed on localhost
  2. N1QL DP4 downloaded, copied to disk and connected to your localhost Couchbase Server: see here.
  3. The "beer-sample" sample Bucket and data set installed. This can be installed by logging into the Couchbase Console (http://localhost:8091) and then Settings->Sample Buckets.
  4. The following buckets installed on localhost:
    1. "default" - the standard default bucket
    2. "authenticated" - a Couchbase bucket with a password of "secret"
    3. "memcached" - a Memcached bucket with no password
  5. Install an SSL certificate (copied from the Couchbase console) if you wish to run the SSL/TLS tests

Note that some tests require a cluster (Observe tests and Replica Read tests for example) and will fail if running on localhost.

Pull Requests and Submissions

Being an Open Source project, the Couchbase SDK depends upon feedback and submissions from the community. If you feel as if you want to submit a bug fix or a feature, please post a Pull Request. The Pull Request will go through a formal code review process and merged after being +2'd by a Couchbase Engineer. In order to accept a submission, Couchbase requires that all contributors sign the Contributor License Agreement (CLA). You can do this by creating an account in Gerrit, our official Code Review system. After you have created your account, login and check the CLA checkbox.

Once the CLA is signed, a Couchbase engineer will push the pull request to Gerrit and one or more Couchbase engineers will review the submission. If it looks good they will then +2 the changeset and merge it with master. In addition, if the submission needs more work, you will need to amend the Changeset with another Patchset. Note that is strongly encouraged to submit a Unit Test with each submission and also include a description of the submission, what changed and what the result is.

Something went wrong with that request. Please try again.