Uploaded image for project: 'Apache Cassandra'
  1. Apache Cassandra
  2. CASSANDRA-9206

Remove seed gossip probability

    XMLWordPrintableJSON

Details

    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

        1. 9206.txt
          2 kB
          Brandon Williams

        Issue Links

          Activity

            People

              brandon.williams Brandon Williams
              brandon.williams Brandon Williams
              Brandon Williams
              Votes:
              0 Vote for this issue
              Watchers:
              17 Start watching this issue

              Dates

                Created:
                Updated: