Question

My understanding is :

Seed node maintains all the nodes list in cluster. Lets say if we have to add a new node to the cluster, we have to enter the new node name in the seed list of seed server and then new node will be part of the ring.

I am assuming we don't have to mention any thing about the seed server in the peer nodes.

correct me if my understanding incorrect.

I read some where Failure in "Seed Node" doesn't cause any problem. Lets say if the seed node is crashed how the ring information is maintained?

Was it helpful?

Solution 2

It is the other way round: In the configuration of your new node you point to another, already existing node as the seed provider. The seed-provider is the initial contact point for a new node joining a cluster. After the node has joined the cluster it remembers the topology and does not require the seed provider any more.

From the Cassandra docs:

Note: The seed node designation has no purpose other than bootstrapping the gossip process for new nodes joining the cluster. Seed nodes are not a single point of failure, nor do they have any other special purpose in cluster operations beyond the bootstrapping of nodes.

OTHER TIPS

I want to clarify because that quote from the docs is old and is was never exactly precise.

Even after bootstrapping, seed nodes still play a role in Gossip.

There is no additional impact if you have a seed node that goes down. Though if you need to replace a seed node you should follow the guide in the docs.

Details:

In addition to helping new nodes bootstrap, seed nodes are also used to prevent split brain in your cluster. A node finds out about other nodes when it handshakes with a node that already has information about other nodes from recent gossip operations.

Gossip.run() happens every second. In a single gossip run a node will handshake with one random live node, one random dead node--if any--based on some probability, and one random seed node if the random node wasn't seed--also based on some probability. As your list of seed nodes increases, the more nodes you will be handshaking with. Per this logic, the probabilistic frequency with which handshakes to the list of seed nodes occurs will increase as your proportion of seed nodes increases.

However, as noted above, step 3 only happens if step 1 did not occur on a seed node. So the probability of having to do step 3 increases with added seeds, maxing out at the point where half your nodes are seeds (.25 chance) and then decreases again.

It is recommended to keep 3 seed nodes per DC. Do not add all your nodes as seed nodes

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top