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

Incorrect read repair of range thombstones

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 2.1 rc2
    • None
    • None
    • 2.0

    • Normal

    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. ReadRepairsDebugLogger.txt
          5 kB
          Oleg Anastasyev
        2. ReadRepairRangeThombstoneDiff.txt
          6 kB
          Oleg Anastasyev
        3. 6863-v2.txt
          11 kB
          Oleg Anastasyev
        4. 6863-v2.txt
          16 kB
          Jonathan Ellis

        Activity

          People

            m0nstermind Oleg Anastasyev
            m0nstermind Oleg Anastasyev
            Oleg Anastasyev
            Jonathan Ellis
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: