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 >