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

Have the repair of a range repair *all* the replica for that range

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 1.0.0
    • None
    • None

    Description

      Say you have a range R whose replica for that range are A, B and C. If you run repair on node A for that range R, when the repair end you only know that A is fully repaired. B and C are not. That is B and C are up to date with A before the repair, but are not up to date with one another.

      It makes it a pain to schedule "optimal" cluster repairs, that is repairing a full cluster without doing work twice (because you would have still have to run a repair on B or C, which will make A, B and C redo a validation compaction on R, and with more replica it's even more annoying).

      However it is fairly easy during the first repair on A to have him compare all the merkle trees, i.e the ones for B and C, and ask to B or C to stream between them whichever the differences they have.

      Attachments

        1. 0001-Make-repair-repair-all-hosts.patch
          51 kB
          Sylvain Lebresne
        2. 0001-Make-repair-repair-all-hosts-v2.patch
          33 kB
          Sylvain Lebresne
        3. 0002-Cleanup-log-messages-v2.patch
          8 kB
          Sylvain Lebresne
        4. 0003-cleanup-and-fix-private-reference.patch
          11 kB
          Jonathan Ellis

        Issue Links

          Activity

            People

              slebresne Sylvain Lebresne
              slebresne Sylvain Lebresne
              Sylvain Lebresne
              Jonathan Ellis
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 8h
                  8h
                  Remaining:
                  Remaining Estimate - 8h
                  8h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified