Les, > I've just glanced over the riak design overview and I think I am missing > something basic in the failover technique. The docs explain that any node > can process any query and that adding nodes will re-balance the storage. My > question is, how does the client know which server node to contact initially > and what happens if that node is the one that has failed - particularly for > the rest interface where you don't have a special client? Do you typically > put server nodes on the same host as the clients so they can use a localhost > connection, use round robin DNS, put them behind a load balancer or is there > some unique way of handling this?
This really depends on your architecture. You could elect to use a reverse proxy such as Nginx to automatically handle request failover and load balancing. Even as fast and reliable as Nginx is, you still need to be careful not to induce a bottle neck or single point of failure. More simply, you could create some sort of a simple connection object which manages a pool of connections. In this I don't mean a pool of persistent HTTP keep-alive connections but rather just a simple list of possible servers which can be used one after another. Depending on your app you could simply randomize list on each request or keep the object around globally to round-robin the requests. TJ _______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com