The OPS go down seriously when change a replica from zero to one on .net sdk


We used Couchbase as a caching layer for our APP. We have 5 node, with couchbase 2.1.1 on CentOS release 5.6 which CPU is 4*1.9GHz and RAM is more than 8G and the network is Ethernet.And we used .net SDK 1.2.

We used the follow code store the data into couchbase:
"client.ExecuteStoreJson(StoreMode.Set, key, newBeer, PersistTo.Zero, ReplicateTo.Zero);"
I can reached over 6K OPS with ReplicateTo.ZERO. But I only got below 10 operations per second with ReplicateTo.ONE. And we evently got a timeout failure sometimes.
In our APP, ReplicateTo function is required, so we have to resolve the problem otherwise we will leave the couchbase.
My questions are:

  1. What is happening?
  2. How to resolve it the timeout faiure?
  3. and the performance is extremely poor for ReplicateTo turn on. How to resolve it if it is required?

Thanks a lot,


You might have to many items in memory already.

What is the bucket memory size allocated at per node and Whole cluster for the bucket?
What is the lower water mark at (it will show in your ADMIN graph)?
What is your high water mark set at (it will show in your ADMIN graph)?
What is the current amount of documents in memory(it will show in you ADMIN graph)?
look at image below.

what is the average size of you documents?



It is true that in some case using ReplicateTo can have a big impact on the throughput and performance. In addition to the fact that the system has to write and check that that value has been copied to another node it the cluster we found a bug that is fixed in the next release. You can find information about this bug here:

Note that you can also use a 2 steps approach, so you save the data with not replicateTo and use observe to check if the keys have been replicated see



As you can see in the issue it has been fixed in Couchbase release 2.2, so you should see some improvement.