You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sa...@apache.org on 2018/09/20 12:56:02 UTC

cassandra git commit: Reinstate repaired data tracking if read repair is disabled

Repository: cassandra
Updated Branches:
  refs/heads/trunk 27c937477 -> ee9e06b5a


Reinstate repaired data tracking if read repair is disabled

Patch by Sam Tunnicliffe; reviewed by Alex Petrov for CASSANDRA-14755


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ee9e06b5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ee9e06b5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ee9e06b5

Branch: refs/heads/trunk
Commit: ee9e06b5a75c0be954694b191ea4170456015b98
Parents: 27c9374
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Mon Sep 17 10:08:51 2018 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Thu Sep 20 12:16:30 2018 +0100

----------------------------------------------------------------------
 .../cassandra/service/reads/DataResolver.java   | 22 ++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee9e06b5/src/java/org/apache/cassandra/service/reads/DataResolver.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/reads/DataResolver.java b/src/java/org/apache/cassandra/service/reads/DataResolver.java
index db5f3c8..03f718f 100644
--- a/src/java/org/apache/cassandra/service/reads/DataResolver.java
+++ b/src/java/org/apache/cassandra/service/reads/DataResolver.java
@@ -164,9 +164,27 @@ public class DataResolver<E extends Endpoints<E>, P extends ReplicaPlan.ForRead<
                                                                          P sources,
                                                                          RepairedDataTracker repairedDataTracker)
     {
-        // Avoid wrapping no-op listeners as it doesn't throw
+        // Avoid wrapping no-op listener as it doesn't throw, unless we're tracking repaired status
+        // in which case we need to inject the tracker & verify on close
         if (partitionListener == UnfilteredPartitionIterators.MergeListener.NOOP)
-            return partitionListener;
+        {
+            if (repairedDataTracker == null)
+                return partitionListener;
+
+            return new UnfilteredPartitionIterators.MergeListener()
+            {
+
+                public UnfilteredRowIterators.MergeListener getRowMergeListener(DecoratedKey partitionKey, List<UnfilteredRowIterator> versions)
+                {
+                    return UnfilteredRowIterators.MergeListener.NOOP;
+                }
+
+                public void close()
+                {
+                    repairedDataTracker.verify();
+                }
+            };
+        }
 
         return new UnfilteredPartitionIterators.MergeListener()
         {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org