[NCBC-36] Enhance intelligence of client to know about all nodes of a cluster for making REST connection Created: 06/Apr/12  Updated: 02/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 0.9
Fix Version/s: backlog-1.0

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
If configured with a single host (a load balancer), the client will pause for 1s everytime it loses this connection. The same thing happens when configured with a list of hosts and the client reaches the end of the list...it pauses for 1s before going back to the top.

I don't think it's appropriate to ask for the client to constantly spin on trying to make a connection if in fact none can be made.

Another solution to this would be to have the client be aware of ALL the servers in a cluster (which it gets via the vbucket map info) and be able to try all of them, and/or know which ones are alive so that it doesn't have to wait

 Comments   
Comment by Perry Krug [ 15/Aug/13 ]
This is also needed when trying to upgrade the entire cluster as IP addresses are changing (mostly in AWS)
Comment by Perry Krug [ 13/Jan/14 ]
Has this already been handled with unibrow/CCCP?
Comment by Matt Ingenthron [ 13/Jan/14 ]
Node IPs only change on reboot in EC2. Well, or if you associate an EIP, but that's administrator controlled, not random.

.NET has not implemented unibrow yet and may actually get to CCCP first. The phase one for unibrow was Java and libcouchbase, and those two have been done for some time.
Comment by Perry Krug [ 13/Jan/14 ]
I think it's just important to realize the major use case of this would be when replacing all of the nodes in a client's bootstrap list. This might be when swapping all nodes for some reason or another or just happening to rebalance out the nodes that the client has in its list...I don't think that's a corner-case only related to AWS.
Generated at Sun Sep 14 21:37:26 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.