I am using for testing a couchbase cluster community version 3.00 installed on two nodes. Using java client v2.1, I am connecting to cluster with the following command :
While I am trying to insert some rows ( 10000 rows) , I am shut downing one of the nodes ( lets say the 1st node). The client starting to complaints for timeouts when it tries to access the shutdown node. Some records failed to insert because of down node.
Question : How I will configure the client, in case of lost access on one of the clusters nodes, to re-divert the CRUD command to execute on the other available nodes, rather than to return a timeout exception ?
let’s clarify the behaviour first: when a couchbase node is down and not failed over yet, you won’t be able to write data to the partitions residing on this specific node. As soon as you fail over then replicas will become active, the client gets a new configuration and all is good again.
Does that clarify the situation or is it the case for you that even once you failover, or bring the node up again and it is correctly part of the cluster, operations are still timing out?
Somewhere, I read that if you have 3 nodes on the cluster and the automatic failover, the java client will try again using the rest of nodes. I made the configuration with 3 nodes, and again when I shutdown one of the nodes, I am getting the following exception : com.couchbase.client.core.RequestCancelledException: Request cancelled in-flight.
My behaviour expectation is not to receive any exception during CRUD operation and the system to continue to work with one less node. Later, the admin will reconnnect the lost node on the cluster and rebalance it.
So, what kind of configuration I need to setup on the couchbase environment, so the client do not return any exception in case of lost node ( on 3 node cluster configuration) ???