Cassandra
  1. Cassandra
  2. CASSANDRA-967

Implement Read Repair on Range Queries

    Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: Core
    • Labels:
      None
    • Environment:

      Linux/Mac + Cassandra

      Description

      Implement Read Repair on Range scans.

      The idea is: To compare each rows in the list, if the responses mismatch then send back a message resolution for that row alone to resolve the conflicts.

        Activity

        Hide
        Randall Leeds added a comment -

        Here's a patch which implements read repair for ranges.

        For consistency ONE the READ-REPAIR header is sent and the responding node performs a consistency check on each row after sending the response back. This is consistent with how row reads are handled, I think.

        For the quorum case, I added a check that repairs rows that are missing during collation and reduction in the response resolver.
        An open issue remains as in CASSANDR-982, namely that replicas not involved in the quorum are not repaired.

        Patch against 0.6 tip. I can forward port to 0.7 if this seems like the right approach.

        Show
        Randall Leeds added a comment - Here's a patch which implements read repair for ranges. For consistency ONE the READ-REPAIR header is sent and the responding node performs a consistency check on each row after sending the response back. This is consistent with how row reads are handled, I think. For the quorum case, I added a check that repairs rows that are missing during collation and reduction in the response resolver. An open issue remains as in CASSANDR-982, namely that replicas not involved in the quorum are not repaired. Patch against 0.6 tip. I can forward port to 0.7 if this seems like the right approach.
        Hide
        Randall Leeds added a comment -

        Patch as described in last comment.

        Show
        Randall Leeds added a comment - Patch as described in last comment.
        Hide
        Jonathan Ellis added a comment -

        For consistency ONE the READ-REPAIR header is sent and the responding node performs a consistency check on each row after sending the response back

        This isn't quite right – it will miss repairing any rows that don't exist on the first node at all.

        I think the right approach is to finish CASANDRA-982, moving the RR code into the coordinator node (instead of the data node). Then it will be easier to generalize quorum/read repair paths across row-get and range-query paths.

        Show
        Jonathan Ellis added a comment - For consistency ONE the READ-REPAIR header is sent and the responding node performs a consistency check on each row after sending the response back This isn't quite right – it will miss repairing any rows that don't exist on the first node at all. I think the right approach is to finish CASANDRA-982, moving the RR code into the coordinator node (instead of the data node). Then it will be easier to generalize quorum/read repair paths across row-get and range-query paths.

          People

          • Assignee:
            Unassigned
            Reporter:
            Vijay
          • Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

            • Due:
              Created:
              Updated:

              Development