Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Couchbase .NET client library (official), based on the Enyim memcached client
C# Shell

NCBC-934: Ensure GetFromReplica returns an IOperationResult

Motivation
----------
In certain cases the replicas list may be empty, even though replicas are
available. If no replicas are found an IOperationResult should be
returned, not null as was happening in previous versions. Additionally,
the SDK will try to do a successful replica read until it times out or
success is returned if replicas are configured.

Modifications
-------------
Moved around the code in CouchbaseCOnfigContext to ensure that there is
not a time in which the replicas could be empty. Added logic to ensure
that IOperationResult is returned instead of null if the replicas list is
empty.

Result
------
If no replicas can be found (perhaps an inconsistent state during a
rebalance), an IOperationResult will be returned. The Result field will
indicate an OperationTimeout if it ran to timeout, NoReplicasFOund if replicas are
not configured, or success if the read was successful.

Change-Id: I06b3b7711b68b2d9ac334ad53fc2eece9f3f0aa4
Reviewed-on: http://review.couchbase.org/52766
Reviewed-by: Simon Baslé <simon@couchbase.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
latest commit 687ae01dd5
@jeffrymorris jeffrymorris authored

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.