Revert "More detailed read repair metrics." This reverts commit 6193fefbf7d92c0b909dccf5a2519b9266983091.
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a5c04842 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a5c04842 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a5c04842 Branch: refs/heads/trunk Commit: a5c04842ab68643e76926ff21da640b116339dc8 Parents: 1c038f5 Author: Brandon Williams <[email protected]> Authored: Wed Jun 5 22:10:53 2013 -0500 Committer: Brandon Williams <[email protected]> Committed: Wed Jun 5 22:10:53 2013 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 - .../cassandra/metrics/ReadRepairMetrics.java | 25 ----- .../org/apache/cassandra/service/ReadCallback.java | 5 +- .../org/apache/cassandra/service/StorageProxy.java | 72 --------------- .../cassandra/service/StorageProxyMBean.java | 6 - src/java/org/apache/cassandra/tools/NodeCmd.java | 2 - src/java/org/apache/cassandra/tools/NodeProbe.java | 15 --- 7 files changed, 1 insertions(+), 125 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a5c04842/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 4b84bdf..04122b9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -78,7 +78,6 @@ * cqlsh: fix COPY FROM with ReversedType (CASSANDRA-5610) * Allow creating CUSTOM indexes on collections (CASSANDRA-5615) * Evaluate now() function at execution time (CASSANDRA-5616) - * Expose detailed read repair metrics (CASSANDRA-5618) Merged from 1.1: * Remove buggy thrift max message length option (CASSANDRA-5529) * Fix NPE in Pig's widerow mode (CASSANDRA-5488) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a5c04842/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java b/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java deleted file mode 100644 index 3f48fee..0000000 --- a/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.apache.cassandra.metrics; - -import java.util.concurrent.TimeUnit; - -import com.yammer.metrics.Metrics; -import com.yammer.metrics.core.Counter; -import com.yammer.metrics.core.Gauge; -import com.yammer.metrics.core.Meter; -import com.yammer.metrics.core.MetricName; -import com.yammer.metrics.util.RatioGauge; - -/** - * Metrics related to Read Repair. - */ -public class ReadRepairMetrics { - public static final String GROUP_NAME = "org.apache.cassandra.metrics"; - public static final String TYPE_NAME = "ReadRepair"; - - public static final Meter repairedBlocking = - Metrics.newMeter(new MetricName(GROUP_NAME, TYPE_NAME, "RepairedBlocking"), "RepairedBlocking", TimeUnit.SECONDS); - public static final Meter repairedBackground = - Metrics.newMeter(new MetricName(GROUP_NAME, TYPE_NAME, "RepairedBackground"), "RepairedBackground", TimeUnit.SECONDS); - public static final Meter attempted = - Metrics.newMeter(new MetricName(GROUP_NAME, TYPE_NAME, "Attempted"), "Attempted", TimeUnit.SECONDS); -} http://git-wip-us.apache.org/repos/asf/cassandra/blob/a5c04842/src/java/org/apache/cassandra/service/ReadCallback.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/ReadCallback.java b/src/java/org/apache/cassandra/service/ReadCallback.java index fe7f4d7..79e15b1 100644 --- a/src/java/org/apache/cassandra/service/ReadCallback.java +++ b/src/java/org/apache/cassandra/service/ReadCallback.java @@ -34,7 +34,6 @@ import org.apache.cassandra.db.ReadCommand; 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.IAsyncCallback; import org.apache.cassandra.net.MessageIn; import org.apache.cassandra.net.MessageOut; @@ -182,9 +181,7 @@ public class ReadCallback<TMessage, TResolved> implements IAsyncCallback<TMessag if (logger.isDebugEnabled()) logger.debug("Digest mismatch:", e); - - ReadRepairMetrics.repairedBackground.mark(); - + ReadCommand readCommand = (ReadCommand) command; final RowDataResolver repairResolver = new RowDataResolver(readCommand.table, readCommand.key, readCommand.filter()); AsyncRepairCallback repairHandler = new AsyncRepairCallback(repairResolver, endpoints.size()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/a5c04842/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..3da923b 100644 --- a/src/java/org/apache/cassandra/service/StorageProxy.java +++ b/src/java/org/apache/cassandra/service/StorageProxy.java @@ -39,7 +39,6 @@ import org.apache.cassandra.concurrent.Stage; import org.apache.cassandra.concurrent.StageManager; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.DatabaseDescriptor; -import org.apache.cassandra.config.ReadRepairDecision; import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.*; import org.apache.cassandra.db.Table; @@ -60,7 +59,6 @@ import org.apache.cassandra.locator.AbstractReplicationStrategy; import org.apache.cassandra.locator.IEndpointSnitch; import org.apache.cassandra.locator.TokenMetadata; import org.apache.cassandra.metrics.ClientRequestMetrics; -import org.apache.cassandra.metrics.ReadRepairMetrics; import org.apache.cassandra.net.*; import org.apache.cassandra.service.paxos.*; import org.apache.cassandra.tracing.Tracing; @@ -1163,64 +1161,9 @@ public class StorageProxy implements StorageProxyMBean assert !command.isDigestQuery(); logger.trace("Command/ConsistencyLevel is {}/{}", command, consistency_level); -<<<<<<< HEAD AbstractReadExecutor exec = AbstractReadExecutor.getReadExecutor(command, consistency_level); exec.executeAsync(); readExecutors[i] = exec; -======= - List<InetAddress> endpoints = getLiveSortedEndpoints(table, command.key); - CFMetaData cfm = Schema.instance.getCFMetaData(command.getKeyspace(), command.getColumnFamilyName()); - - ReadRepairDecision rrDecision = cfm.newReadRepairDecision(); - endpoints = consistency_level.filterForQuery(table, endpoints, rrDecision); - - if (rrDecision != ReadRepairDecision.NONE) { - ReadRepairMetrics.attempted.mark(); - } - - RowDigestResolver resolver = new RowDigestResolver(command.table, command.key); - ReadCallback<ReadResponse, Row> handler = new ReadCallback(resolver, consistency_level, command, endpoints); - handler.assureSufficientLiveNodes(); - assert !endpoints.isEmpty(); - readCallbacks[i] = handler; - - // The data-request message is sent to dataPoint, the node that will actually get the data for us - InetAddress dataPoint = endpoints.get(0); - if (dataPoint.equals(FBUtilities.getBroadcastAddress()) && OPTIMIZE_LOCAL_REQUESTS) - { - logger.trace("reading data locally"); - StageManager.getStage(Stage.READ).execute(new LocalReadRunnable(command, handler)); - } - else - { - logger.trace("reading data from {}", dataPoint); - MessagingService.instance().sendRR(command.createMessage(), dataPoint, handler); - } - - if (endpoints.size() == 1) - continue; - - // send the other endpoints a digest request - ReadCommand digestCommand = command.copy(); - digestCommand.setDigestQuery(true); - MessageOut message = null; - for (InetAddress digestPoint : endpoints.subList(1, endpoints.size())) - { - if (digestPoint.equals(FBUtilities.getBroadcastAddress()) && OPTIMIZE_LOCAL_REQUESTS) - { - logger.trace("reading digest locally"); - StageManager.getStage(Stage.READ).execute(new LocalReadRunnable(digestCommand, handler)); - } - else - { - logger.trace("reading digest from {}", digestPoint); - // (We lazy-construct the digest Message object since it may not be necessary if we - // are doing a local digest read, or no digest reads at all.) - if (message == null) - message = digestCommand.createMessage(); - MessagingService.instance().sendRR(message, digestPoint, handler); - } - } } for (AbstractReadExecutor exec: readExecutors) @@ -1245,9 +1188,6 @@ public class StorageProxy implements StorageProxyMBean catch (DigestMismatchException ex) { 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,16 +1931,4 @@ 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(); } - - public long getReadRepairAttempted() { - return ReadRepairMetrics.attempted.count(); - } - - public long getReadRepairRepairedBlocking() { - return ReadRepairMetrics.repairedBlocking.count(); - } - - public long getReadRepairRepairedBackground() { - return ReadRepairMetrics.repairedBackground.count(); - } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/a5c04842/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..f482fc7 100644 --- a/src/java/org/apache/cassandra/service/StorageProxyMBean.java +++ b/src/java/org/apache/cassandra/service/StorageProxyMBean.java @@ -17,8 +17,6 @@ */ package org.apache.cassandra.service; -import org.apache.cassandra.metrics.ReadRepairMetrics; - public interface StorageProxyMBean { /** @@ -92,8 +90,4 @@ public interface StorageProxyMBean public void setTruncateRpcTimeout(Long timeoutInMillis); public void reloadTriggerClass(); - - public long getReadRepairAttempted(); - public long getReadRepairRepairedBlocking(); - public long getReadRepairRepairedBackground(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/a5c04842/src/java/org/apache/cassandra/tools/NodeCmd.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java index 9f524fc..ca81857 100644 --- a/src/java/org/apache/cassandra/tools/NodeCmd.java +++ b/src/java/org/apache/cassandra/tools/NodeCmd.java @@ -665,8 +665,6 @@ public class NodeCmd outs.printf(" Error retrieving file data for %s%n", host); } } - - outs.printf("Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n", probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); MessagingServiceMBean ms = probe.msProxy; outs.printf("%-25s", "Pool Name"); http://git-wip-us.apache.org/repos/asf/cassandra/blob/a5c04842/src/java/org/apache/cassandra/tools/NodeProbe.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java index af94d14..31df3b9 100644 --- a/src/java/org/apache/cassandra/tools/NodeProbe.java +++ b/src/java/org/apache/cassandra/tools/NodeProbe.java @@ -828,21 +828,6 @@ public class NodeProbe { return failed; } - - public long getReadRepairAttempted() - { - return spProxy.getReadRepairAttempted(); - } - - public long getReadRepairRepairedBlocking() - { - return spProxy.getReadRepairRepairedBlocking(); - } - - public long getReadRepairRepairedBackground() - { - return spProxy.getReadRepairRepairedBackground(); - } } class ColumnFamilyStoreMBeanIterator implements Iterator<Map.Entry<String, ColumnFamilyStoreMBean>>
