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

CEP-15: (Accord) sequence EpochReady.coordinating to allow syncComplete to be learned from newer epochs

    XMLWordPrintableJSON

Details

    Description

      When a node is bootstrapping or doing a host replacement it sees several epochs before it actually joins the ring, but in Accord we only synchronize epoch knowledge to the nodes that have already joined; this means we won’t ever synchronize the epochs seen on the new nodes! This becomes a problem because it forces these nodes to include far more epochs than required (because they don’t know if the peers know the epoch), and may include stale epochs that are not possible to reach quorum (such 2 host replacements to the same range would cause that historic range to not be able to reach quorum).

      By sequencing EpochReady.coordinating, we have the property that we only mark sync complete for epoch=N if and only if epoch=N-1 has done it as well. With this, peers are able to recover the past data when a new epoch is seen.

      Attachments

        Issue Links

          Activity

            People

              dcapwell David Capwell
              dcapwell David Capwell
              David Capwell
              Alex Petrov, Blake Eggleston
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 18h 10m
                  18h 10m