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

Read repair inserts should not be blocking

    XMLWordPrintableJSON

Details

    Description

      Today, if there’s a digest mismatch in a foreground read repair, the insert to update out of date replicas is blocking. This means, if it fails, the read fails with a timeout. If a node is dropping writes (maybe it is overloaded or the mutation stage is backed up for some other reason), all reads to a replica set could fail. Further, replicas dropping writes get more out of sync so will require more read repair.

      The comment on the code for why the writes are blocking is:

      // wait for the repair writes to be acknowledged, to minimize impact on any replica that's
      // behind on writes in case the out-of-sync row is read multiple times in quick succession
      

      but the bad side effect is that reads timeout. Either the writes should not be blocking or we should return success for the read even if the write times out.

      Attachments

        Issue Links

          Activity

            People

              bdeggleston Blake Eggleston
              rlow Richard Low
              Blake Eggleston
              Alex Petrov, Marcus Eriksson
              Votes:
              1 Vote for this issue
              Watchers:
              35 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 - 20m
                  20m