Cluster Client retries
philippe.guillebert at gmail.com
Tue Oct 16 04:31:26 EDT 2012
We have a cluster of three Riak 0.14.2 nodes in production and quite happy
with it. I'm planning the upgrade to 1.2.0 and while testing it, I wondered
about how a client should behave during a rolling upgrade (1 node is down
for maintenance but the cluster is working).
My expectations for a client is, if a given node is down the client will
try on another node of the cluster to "hide" the maintenance to the upper
layers of my application.
I tried with Clojure client Welle (internally it uses a PBClusterClient)
and it didn't work. As soon as I stop a Riak node, the client throws
Connection Refused exceptions (instead of retrying elsewhere).
Our Java client library (uses PBClusterClient) has the same problem.
So I realized here that if I restart a node (for maintenance) on my live
cluster, my app breaks ?!?
I tried googling but there is a lot of contradictory opinions out there :
On the wiki
says I should use another class of client :
IRiakClient myPbClient = RiakFactory.newClient(myPbClusterConfig);
Will this client retry correctly ? Does this mean the Welle developers used
the "wrong" client ?
This message on the list states that PBClusterClient should work as I
but this message states that ClusterClient is not working as expected :
Can you help me keep my sanity here ? Thank you !
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the riak-users