.net smart client?
I'm currently evaluating CouchBase as a distributed cache for a reference data use case at my firm. I'm very interested in CouchBase for various reasons but I'm a little confused about something:
Is the .net client (either 1.8 or the new 2.0 version coming out soon) a "smart" client? My understanding is that the smart client would have the map of vBuckets->servers that is used to dynamically pick the correct server to send the request for data... I also read somewhere on the site that the configuration would need at least 1 server and ideally 2 for the client to initially connect to (I'm assuming in order to pull down the vBucket map). However, the .Net sample configuration doesn't make this clear - it seems that lists out all of the servers in the cluster.
For my use case, I would want to create a custom .net library that exposes service friendly interfaces that my customers can use and then internally it would use the CouchBase client to invoke the api and return the data. So in this scenario where I would be widely distributing this DLL to developers at my firm - I'd hate to have to update config files throughout the firm every time I add a server to the farm to scale.
Am I off base here? Does the config have to have a reference to ALL servers in the farm or just one or two (for backup)?
Thanks!
-Steve
Hi Steve,
You're correct that the client is a smart client. Generally, you'd specify at least 2 URIs in config. In case the client couldn't connect to the first, it has another server with which to complete the handshake. The first server that the client connects to pushes down the cluster config for all nodes in the cluster.
-- John
So after some experimentation, I can clearly see that it should be a smart client - although until I get 3 servers and only list 2 in the config, I won't be able to prove it.
-Steve