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

Reply via email to