Hi list, 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 https://github.com/basho/riak-java-client/wiki/ClientFactory#wiki-example3it 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 expect : http://lists.basho.com/pipermail/riak-users_lists.basho.com/2012-March/007949.html but this message states that ClusterClient is not working as expected : http://comments.gmane.org/gmane.comp.db.riak.user/8680 Can you help me keep my sanity here ? Thank you ! -- * Philippe*
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com