How does new node know about other hosts and joins the cluster

2011-03-15 Thread mcasandra
I am assuming it is the seed node that tells who are the other member in the
cluster. And then does the new node joining the cluster send join message
(something like that) to other nodes or is there a master coordinator (like
jboss cluster) that tells other nodes that new node has joined?

--
View this message in context: 
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/How-does-new-node-know-about-other-hosts-and-joins-the-cluster-tp6174900p6174900.html
Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
Nabble.com.


Re: How does new node know about other hosts and joins the cluster

2011-03-15 Thread Robert Coli
On Tue, Mar 15, 2011 at 5:45 PM, mcasandra mohitanch...@gmail.com wrote:
 I am assuming it is the seed node that tells who are the other member in the
 cluster. And then does the new node joining the cluster send join message
 (something like that) to other nodes or is there a master coordinator (like
 jboss cluster) that tells other nodes that new node has joined?

When you have these sorts of questions about cassandra internals,
there are two strategies likely to be more effective than mailing the
-user mailing list.

a) join #cassandra on IRC and ask there

This alternative is superior because you can get into a discussion
with someone who can interactively help you find the information you
need.

b) read the source code

This alternative is superior because it is more certain to be correct
than any doc or mailing list poster, and you don't have to wait around
for an answer.

Example :

./src/java/org/apache/cassandra/gms/Gossiper.java

private class GossipTask implements Runnable
...
public void run()
...
   /* Gossip to some random live member */
 boolean gossipedToSeed = doGossipToLiveMember(prod);
...
 /* Gossip to a seed if we did not do so above, or we have seen less nodes
   than there are seeds.  ... */
...
if (!gossipedToSeed || liveEndpoints.size()  seeds.size())
doGossipToSeed(prod);


=Rob