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

Incorrect read repair of range thombstones

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Fix Version/s: 2.1 rc2
    • Component/s: None
    • Labels:
      None
    • Environment:

      2.0

    • Severity:
      Normal
    • Since Version:

      Description

      Rows with range thombstones are read repaired for every replica, if RR is triggered (this is because CF.diff() returns non null if !isEmpty(), which in turn returns false if range thombstones list is not empty).

      Also, full rangethombstone list is send to all nodes, which could be a problem if you have wide partition.

      Fixed this by evaluating diff on range thombstone lists as well as on deteleInfo of endpoint CF versions. Also return null from CF.diff, if no diff in RTL.

      A second patch (ReadRepairsDebugLogger.txt) adds some debug logging to look at read repairs. You may find it useful as well.

        Attachments

        1. 6863-v2.txt
          16 kB
          Jonathan Ellis
        2. 6863-v2.txt
          11 kB
          Oleg Anastasyev
        3. ReadRepairRangeThombstoneDiff.txt
          6 kB
          Oleg Anastasyev
        4. ReadRepairsDebugLogger.txt
          5 kB
          Oleg Anastasyev

          Activity

            People

            • Assignee:
              m0nstermind Oleg Anastasyev
              Reporter:
              m0nstermind Oleg Anastasyev
              Authors:
              Oleg Anastasyev
              Reviewers:
              Jonathan Ellis
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: