You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ty...@apache.org on 2014/08/12 20:30:58 UTC
git commit: Add trace entries about concurrent range requests
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1.0 dbc458256 -> 6795b6ec6
Add trace entries about concurrent range requests
Patch and review by Tyler Hobbs and Sylvain Lebresne for CASSANDRA-7599
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6795b6ec
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6795b6ec
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6795b6ec
Branch: refs/heads/cassandra-2.1.0
Commit: 6795b6ec607d58fe32216c15d4ce8d50f260eab7
Parents: dbc4582
Author: Tyler Hobbs <ty...@datastax.com>
Authored: Tue Aug 12 13:30:04 2014 -0500
Committer: Tyler Hobbs <ty...@datastax.com>
Committed: Tue Aug 12 13:30:47 2014 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/service/StorageProxy.java | 6 +++++-
2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6795b6ec/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2970632..de45aeb 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.1.0-rc6
+ * Add tracing entries about concurrent range requests (CASSANDRA-7599)
* (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729)
* Remove netty buffer ref-counting (CASSANDRA-7735)
* Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6795b6ec/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 63dc391..d963ee0 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -1449,7 +1449,7 @@ public class StorageProxy implements StorageProxyMBean
public static List<Row> getRangeSlice(AbstractRangeCommand command, ConsistencyLevel consistency_level)
throws UnavailableException, ReadTimeoutException
{
- Tracing.trace("Determining replicas to query");
+ Tracing.trace("Computing ranges to query");
long startTime = System.nanoTime();
Keyspace keyspace = Keyspace.open(command.keyspace);
@@ -1478,6 +1478,7 @@ public class StorageProxy implements StorageProxyMBean
: Math.max(1, Math.min(ranges.size(), (int) Math.ceil(command.limit() / resultRowsPerRange)));
logger.debug("Estimated result rows per range: {}; requested rows: {}, ranges.size(): {}; concurrent range requests: {}",
resultRowsPerRange, command.limit(), ranges.size(), concurrencyFactor);
+ Tracing.trace("Submitting range requests on {} ranges with a concurrency of {} ({} rows per range expected)", new Object[]{ ranges.size(), concurrencyFactor, resultRowsPerRange});
boolean haveSufficientRows = false;
int i = 0;
@@ -1488,6 +1489,7 @@ public class StorageProxy implements StorageProxyMBean
{
List<Pair<AbstractRangeCommand, ReadCallback<RangeSliceReply, Iterable<Row>>>> scanHandlers = new ArrayList<>(concurrencyFactor);
int concurrentFetchStartingIndex = i;
+ int concurrentRequests = 0;
while ((i - concurrentFetchStartingIndex) < concurrencyFactor)
{
AbstractBounds<RowPosition> range = nextRange == null
@@ -1500,6 +1502,7 @@ public class StorageProxy implements StorageProxyMBean
? consistency_level.filterForQuery(keyspace, liveEndpoints)
: nextFilteredEndpoints;
++i;
+ ++concurrentRequests;
// getRestrictedRange has broken the queried range into per-[vnode] token ranges, but this doesn't take
// the replication factor into account. If the intersection of live endpoints for 2 consecutive ranges
@@ -1562,6 +1565,7 @@ public class StorageProxy implements StorageProxyMBean
}
scanHandlers.add(Pair.create(nodeCmd, handler));
}
+ Tracing.trace("Submitted {} concurrent range requests covering {} ranges", concurrentRequests, i - concurrentFetchStartingIndex);
List<AsyncOneResponse> repairResponses = new ArrayList<>();
for (Pair<AbstractRangeCommand, ReadCallback<RangeSliceReply, Iterable<Row>>> cmdPairHandler : scanHandlers)