The Pelops provides a connection pooling impl that's using (or attempting to
use) the second approach, but to be honest it needs a significant amount of
testing before I'd be willing to go into production with it...

IMO, the connection pooling/node failure/etc logic is by far the most
complex part of a client library.  It would be excellent if we could avoid
re-inventing the wheel when attempting to create a solution to solve it.

Cheers,
Dan

On Wed, Sep 1, 2010 at 11:35 AM, Aaron Morton <aa...@thelastpickle.com>wrote:

> When I first started writing code against the thrift API the FAQ
> recommended using a round robin DNS to select nodes
> http://wiki.apache.org/cassandra/FAQ#node_clients_connect_to
>
> <http://wiki.apache.org/cassandra/FAQ#node_clients_connect_to>The other
> day Ben said something like "well behaved clients use describe_ring to keep
> track of running nodes".
> http://www.mail-archive.com/u...@cassandra.apache.org/msg05588.html
>
> So am wondering what approach people are taking to detecting cluster
> membership.
>
> 1. Round Robin
>
> 2. List seeds in app config, connect to a seed, use describe_ring.
>
> 3. Round robin and describe_ring
>
> One issue I've found with round robin, is that is the machine is powered
> off it can take a while for the network to work out there is no ARP for the
> IP. This may just be a result of the network here, have not looked into it
> too far.
>
> cheers
> Aaron
>

Reply via email to