You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2013/06/06 04:46:52 UTC

[3/3] git commit: More detailed read repair metrics. Patch by Jingsi Zhu, reviewed by brandonwilliams for CASSANDRA-5618

More detailed read repair metrics.
Patch by Jingsi Zhu, reviewed by brandonwilliams for CASSANDRA-5618


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

Branch: refs/heads/trunk
Commit: b4b30cf87cbf3f7957c64f625f0f90d24b43b49c
Parents: 6193fef
Author: Brandon Williams <br...@apache.org>
Authored: Wed Jun 5 21:41:54 2013 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Wed Jun 5 21:46:27 2013 -0500

----------------------------------------------------------------------
 .../cassandra/service/AbstractReadExecutor.java    |   11 ++++++++++-
 .../org/apache/cassandra/service/StorageProxy.java |    5 ++++-
 .../cassandra/service/StorageProxyMBean.java       |    2 +-
 3 files changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4b30cf8/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
index 1c7c6f9..f944507 100644
--- a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
+++ b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
@@ -25,6 +25,7 @@ import org.apache.cassandra.concurrent.Stage;
 import org.apache.cassandra.concurrent.StageManager;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.config.ReadRepairDecision;
 import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.ConsistencyLevel;
 import org.apache.cassandra.db.ReadCommand;
@@ -33,6 +34,7 @@ import org.apache.cassandra.db.Row;
 import org.apache.cassandra.db.Table;
 import org.apache.cassandra.exceptions.ReadTimeoutException;
 import org.apache.cassandra.exceptions.UnavailableException;
+import org.apache.cassandra.metrics.ReadRepairMetrics;
 import org.apache.cassandra.net.MessageOut;
 import org.apache.cassandra.net.MessagingService;
 import org.apache.cassandra.service.StorageProxy.LocalReadRunnable;
@@ -125,7 +127,14 @@ public abstract class AbstractReadExecutor
         Table table = Table.open(command.table);
         List<InetAddress> allReplicas = StorageProxy.getLiveSortedEndpoints(table, command.key);
         CFMetaData metaData = Schema.instance.getCFMetaData(command.table, command.cfName);
-        List<InetAddress> queryTargets = consistency_level.filterForQuery(table, allReplicas, metaData.newReadRepairDecision());
+
+        ReadRepairDecision rrDecision = metaData.newReadRepairDecision();
+         
+        if (rrDecision != ReadRepairDecision.NONE) {
+            ReadRepairMetrics.attempted.mark();
+        }
+
+        List<InetAddress> queryTargets = consistency_level.filterForQuery(table, allReplicas, rrDecision);
 
         if (StorageService.instance.isClientMode())
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4b30cf8/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 852e8ca..62e4d86 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -1247,7 +1247,6 @@ public class StorageProxy implements StorageProxyMBean
                     logger.trace("Digest mismatch: {}", ex);
                     
                     ReadRepairMetrics.repairedBlocking.mark();
-                    
                     // Do a full data read to resolve the correct response (and repair node that need be)
                     RowDataResolver resolver = new RowDataResolver(exec.command.table, exec.command.key, exec.command.filter());
                     ReadCallback<ReadResponse, Row> repairHandler = exec.handler.withNewResolver(resolver);
@@ -1991,6 +1990,10 @@ public class StorageProxy implements StorageProxyMBean
     public Long getTruncateRpcTimeout() { return DatabaseDescriptor.getTruncateRpcTimeout(); }
     public void setTruncateRpcTimeout(Long timeoutInMillis) { DatabaseDescriptor.setTruncateRpcTimeout(timeoutInMillis); }
     public void reloadTriggerClass() { TriggerExecutor.instance.reloadClasses(); }
+<<<<<<< HEAD
+=======
+
+>>>>>>> More detailed read repair metrics.
     
     public long getReadRepairAttempted() {
         return ReadRepairMetrics.attempted.count();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4b30cf8/src/java/org/apache/cassandra/service/StorageProxyMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxyMBean.java b/src/java/org/apache/cassandra/service/StorageProxyMBean.java
index 3cb4f17..32fa1be 100644
--- a/src/java/org/apache/cassandra/service/StorageProxyMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageProxyMBean.java
@@ -92,7 +92,7 @@ public interface StorageProxyMBean
     public void setTruncateRpcTimeout(Long timeoutInMillis);
 
     public void reloadTriggerClass();
-    
+
     public long getReadRepairAttempted();
     public long getReadRepairRepairedBlocking();
     public long getReadRepairRepairedBackground();