[
https://issues.apache.org/jira/browse/CASSANDRA-9206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brandon Williams updated CASSANDRA-9206:
----------------------------------------
Description:
Currently, we use probability to determine whether a node will gossip with a
seed:
{noformat}
double probability = seeds.size() / (double)
(liveEndpoints.size() + unreachableEndpoints.size());
double randDbl = random.nextDouble();
if (randDbl <= probability)
sendGossip(prod, seeds);
{noformat}
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.
was:
Currently, we use probability to determine whether a node will gossip with a
seed:
{noformat}
double probability = seeds.size() / (double)
(liveEndpoints.size() + unreachableEndpoints.size());
double randDbl = random.nextDouble();
if (randDbl <= probability)
sendGossip(prod, seeds);
{noformat}
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 code, and should greatly improve
our gossip convergence time, especially in large clusters.
> Remove seed gossip probability
> ------------------------------
>
> Key: CASSANDRA-9206
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9206
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Brandon Williams
> Assignee: Brandon Williams
> Attachments: 9206.txt
>
>
> Currently, we use probability to determine whether a node will gossip with a
> seed:
> {noformat}
> double probability = seeds.size() / (double)
> (liveEndpoints.size() + unreachableEndpoints.size());
> double randDbl = random.nextDouble();
> if (randDbl <= probability)
> sendGossip(prod, seeds);
> {noformat}
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)