Details
-
Improvement
-
Status: Open
-
Normal
-
Resolution: Unresolved
-
None
Description
Currently, we use probability to determine whether a node will gossip with a seed:
double probability = seeds.size() / (double) (liveEndpoints.size() + unreachableEndpoints.size()); double randDbl = random.nextDouble(); if (randDbl <= probability) sendGossip(prod, seeds);
I propose that we remove this probability, and instead always gossip with a seed. This of course means increased traffic and processing on the seed(s), but even a 1000 node cluster with a single seed will only put ~1000 messages per second on the seed, which is virtually nothing. Should it become a problem, the solution is simple: add more seeds. Since seeds will also always gossip with each other, this effectively gives us a poor man's spanning tree, with the only cost being removing a few lines of code, and should greatly improve our gossip convergence time, especially in large clusters.
Attachments
Attachments
Issue Links
- depends upon
-
CASSANDRA-9401 Better check for gossip stabilization on startup
- Resolved