I have a question about item lookup before rebalance is complete.
Let say, there are 3 nodes in my Couchbase Cluster, namely node A, node B and node C.
The cluster is configured with 1 replica for all buckets and auto-failover is enabled.
And if node B went down unexpectedly due to whatever reason, I would assume an auto-failover would be triggered and the cluster would be rebalanced.
But what would happen if I look up an item that is located on an active vBucket on node B before the rebalance is complete, Would the item still be found (from a vBucket replica) on an other node, since node B is not available?
Could anyone shed some light on.this?
Thanks in advance.
When using Couchbase SDK, a client directly accesses to the node that has the active copy of the targeted document, i.e. the active vBucket, node B in your case. It is realized by the cluster map that is provided to a client in the bootstrap phase, then correspondingly updated and distributed to clients. Till the cluster map that is updated after failover is distributed, the access to the document stored in the node that went down must be failed. Couchbase SDK provides “getFromReplica” method to access a replica vBucket, which is for read-only access.
I hope this helps.
Thanks for your answer. It really helps a lot.
So in case of a node failover, getFromReplica may be necessary, if the item is located in the missing node’s active vBucket.
But how about a query. Would a query fail if node B was the only node where the index service is running.
Really appreciated your help.