You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2014/07/07 19:34:32 UTC

[09/23] Introduce CQL support for stress tool

http://git-wip-us.apache.org/repos/asf/cassandra/blob/75364296/tools/stress/src/org/apache/cassandra/stress/util/SmartThriftClient.java
----------------------------------------------------------------------
diff --git a/tools/stress/src/org/apache/cassandra/stress/util/SmartThriftClient.java b/tools/stress/src/org/apache/cassandra/stress/util/SmartThriftClient.java
index 2782a05..7ede496 100644
--- a/tools/stress/src/org/apache/cassandra/stress/util/SmartThriftClient.java
+++ b/tools/stress/src/org/apache/cassandra/stress/util/SmartThriftClient.java
@@ -63,8 +63,10 @@ public class SmartThriftClient implements ThriftClient
             return r;
         r = queryIdCounter.incrementAndGet();
         if (queryIds.putIfAbsent(query, r) == null)
+        {
+            queryStrings.put(r, query);
             return r;
-        queryStrings.put(r, query);
+        }
         return queryIds.get(query);
     }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/75364296/tools/stress/src/org/apache/cassandra/stress/util/Timer.java
----------------------------------------------------------------------
diff --git a/tools/stress/src/org/apache/cassandra/stress/util/Timer.java b/tools/stress/src/org/apache/cassandra/stress/util/Timer.java
index 06d113d..45e1ba7 100644
--- a/tools/stress/src/org/apache/cassandra/stress/util/Timer.java
+++ b/tools/stress/src/org/apache/cassandra/stress/util/Timer.java
@@ -43,7 +43,8 @@ public final class Timer
     private int opCount;
 
     // aggregate info
-    private int keyCount;
+    private long partitionCount;
+    private long rowCount;
     private long total;
     private long max;
     private long maxStart;
@@ -65,7 +66,7 @@ public final class Timer
         return 1 + (index >>> SAMPLE_SIZE_SHIFT);
     }
 
-    public void stop(int keys)
+    public void stop(long partitionCount, long rowCount)
     {
         maybeReport();
         long now = System.nanoTime();
@@ -79,7 +80,8 @@ public final class Timer
         }
         total += time;
         opCount += 1;
-        keyCount += keys;
+        this.partitionCount += partitionCount;
+        this.rowCount += rowCount;
         upToDateAsOf = now;
     }
 
@@ -94,11 +96,12 @@ public final class Timer
                 (       new SampleOfLongs(Arrays.copyOf(sample, index(opCount)), p(opCount)),
                         new SampleOfLongs(Arrays.copyOfRange(sample, index(opCount), Math.min(opCount, sample.length)), p(opCount) - 1)
                 );
-        final TimingInterval report = new TimingInterval(lastSnap, upToDateAsOf, max, maxStart, max, keyCount, total, opCount,
+        final TimingInterval report = new TimingInterval(lastSnap, upToDateAsOf, max, maxStart, max, partitionCount, rowCount, total, opCount,
                 SampleOfLongs.merge(rnd, sampleLatencies, Integer.MAX_VALUE));
         // reset counters
         opCount = 0;
-        keyCount = 0;
+        partitionCount = 0;
+        rowCount = 0;
         total = 0;
         max = 0;
         lastSnap = upToDateAsOf;
@@ -145,6 +148,4 @@ public final class Timer
             reportRequest = null;
         }
     }
-
-}
-
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/75364296/tools/stress/src/org/apache/cassandra/stress/util/TimingInterval.java
----------------------------------------------------------------------
diff --git a/tools/stress/src/org/apache/cassandra/stress/util/TimingInterval.java b/tools/stress/src/org/apache/cassandra/stress/util/TimingInterval.java
index 9e68045..db3fef1 100644
--- a/tools/stress/src/org/apache/cassandra/stress/util/TimingInterval.java
+++ b/tools/stress/src/org/apache/cassandra/stress/util/TimingInterval.java
@@ -39,7 +39,8 @@ public final class TimingInterval
     public final long totalLatency;
 
     // discrete
-    public final long keyCount;
+    public final long partitionCount;
+    public final long rowCount;
     public final long operationCount;
 
     final SampleOfLongs sample;
@@ -48,16 +49,17 @@ public final class TimingInterval
     {
         start = end = time;
         maxLatency = totalLatency = 0;
-        keyCount = operationCount = 0;
+        partitionCount = rowCount = operationCount = 0;
         pauseStart = pauseLength = 0;
         sample = new SampleOfLongs(new long[0], 1d);
     }
-    TimingInterval(long start, long end, long maxLatency, long pauseStart, long pauseLength, long keyCount, long totalLatency, long operationCount, SampleOfLongs sample)
+    TimingInterval(long start, long end, long maxLatency, long pauseStart, long pauseLength, long partitionCount, long rowCount, long totalLatency, long operationCount, SampleOfLongs sample)
     {
         this.start = start;
         this.end = Math.max(end, start);
         this.maxLatency = maxLatency;
-        this.keyCount = keyCount;
+        this.partitionCount = partitionCount;
+        this.rowCount = rowCount;
         this.totalLatency = totalLatency;
         this.operationCount = operationCount;
         this.pauseStart = pauseStart;
@@ -68,7 +70,7 @@ public final class TimingInterval
     // merge multiple timer intervals together
     static TimingInterval merge(Random rnd, List<TimingInterval> intervals, int maxSamples, long start)
     {
-        int operationCount = 0, keyCount = 0;
+        long operationCount = 0, partitionCount = 0, rowCount = 0;
         long maxLatency = 0, totalLatency = 0;
         List<SampleOfLongs> latencies = new ArrayList<>();
         long end = 0;
@@ -79,7 +81,8 @@ public final class TimingInterval
             operationCount += interval.operationCount;
             maxLatency = Math.max(interval.maxLatency, maxLatency);
             totalLatency += interval.totalLatency;
-            keyCount += interval.keyCount;
+            partitionCount += interval.partitionCount;
+            rowCount += interval.rowCount;
             latencies.addAll(Arrays.asList(interval.sample));
             if (interval.pauseLength > 0)
             {
@@ -89,7 +92,7 @@ public final class TimingInterval
         }
         if (pauseEnd < pauseStart)
             pauseEnd = pauseStart = 0;
-        return new TimingInterval(start, end, maxLatency, pauseStart, pauseEnd - pauseStart, keyCount, totalLatency, operationCount,
+        return new TimingInterval(start, end, maxLatency, pauseStart, pauseEnd - pauseStart, partitionCount, rowCount, totalLatency, operationCount,
                 SampleOfLongs.merge(rnd, latencies, maxSamples));
 
     }
@@ -104,9 +107,14 @@ public final class TimingInterval
         return operationCount / ((end - (start + pauseLength)) * 0.000000001d);
     }
 
-    public double keyRate()
+    public double partitionRate()
     {
-        return keyCount / ((end - start) * 0.000000001d);
+        return partitionCount / ((end - start) * 0.000000001d);
+    }
+
+    public double rowRate()
+    {
+        return rowCount / ((end - start) * 0.000000001d);
     }
 
     public double meanLatency()