You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ja...@apache.org on 2014/04/22 19:10:39 UTC

git commit: fix cassandra stress errors on reads with native protocol

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 5045d3ea8 -> a16adba9b


fix cassandra stress errors on reads with native protocol

patch by belliottsmith; reviewed by jasobrown for CASSANDRA-7033


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

Branch: refs/heads/cassandra-2.1
Commit: a16adba9b89661f95d167d056d128ed388c4e7a7
Parents: 5045d3e
Author: Jason Brown <ja...@apple.com>
Authored: Tue Apr 22 10:04:11 2014 -0700
Committer: Jason Brown <ja...@apple.com>
Committed: Tue Apr 22 10:09:58 2014 -0700

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../operations/CqlIndexedRangeSlicer.java       |  9 ++-----
 .../stress/operations/CqlOperation.java         | 14 ++++-------
 .../cassandra/stress/operations/CqlReader.java  | 26 +++++++++++---------
 4 files changed, 22 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a16adba9/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2f70c63..844df95 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -48,6 +48,7 @@
  * Clean up IndexInfo on keyspace/table drops (CASSANDRA-6924)
  * Only snapshot relative SSTables when sequential repair (CASSANDRA-7024)
  * Require nodetool rebuild_index to specify index names (CASSANDRA-7038)
+ * fix cassandra stress errors on reads with native protocol (CASANDRA-7033)
 Merged from 2.0:
  * Use LOCAL_QUORUM for data reads at LOCAL_SERIAL (CASSANDRA-6939)
  * Log a warning for large batches (CASSANDRA-6487)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a16adba9/tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
----------------------------------------------------------------------
diff --git a/tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java b/tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
index c971844..046381e 100644
--- a/tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
+++ b/tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
@@ -47,13 +47,8 @@ public class CqlIndexedRangeSlicer extends CqlOperation<byte[][]>
     @Override
     protected String buildQuery()
     {
-        StringBuilder query = new StringBuilder("SELECT ");
-
-        if (state.isCql2())
-            query.append(state.settings.columns.maxColumnsPerKey).append(" ''..''");
-        else
-            query.append("*");
-
+        StringBuilder query = new StringBuilder("SELECT");
+        query.append(wrapInQuotesIfRequired("key"));
         query.append(" FROM ");
         query.append(wrapInQuotesIfRequired(state.type.table));
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a16adba9/tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java
----------------------------------------------------------------------
diff --git a/tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java b/tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java
index 5b27146..1c59e2d 100644
--- a/tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java
+++ b/tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java
@@ -145,7 +145,7 @@ public abstract class CqlOperation<V> extends Operation
         @Override
         public boolean validate(Integer result)
         {
-            return true;
+            return result > 0;
         }
 
         @Override
@@ -195,12 +195,8 @@ public abstract class CqlOperation<V> extends Operation
             if (result.length != expect.size())
                 return false;
             for (int i = 0 ; i < result.length ; i++)
-            {
-                List<ByteBuffer> resultRow = Arrays.asList(result[i]);
-                resultRow = resultRow.subList(1, resultRow.size());
-                if (expect.get(i) != null && !expect.get(i).equals(resultRow))
+                if (expect.get(i) != null && !expect.get(i).equals(Arrays.asList(result[i])))
                     return false;
-            }
             return true;
         }
     }
@@ -510,9 +506,9 @@ public abstract class CqlOperation<V> extends Operation
                     for (int i = 0 ; i < r.length ; i++)
                     {
                         Row row = rows.get(i);
-                        r[i] = new ByteBuffer[row.getColumnDefinitions().size() - 1];
-                        for (int j = 1 ; j < row.getColumnDefinitions().size() ; j++)
-                            r[i][j - 1] = row.getBytes(j);
+                        r[i] = new ByteBuffer[row.getColumnDefinitions().size()];
+                        for (int j = 0 ; j < row.getColumnDefinitions().size() ; j++)
+                            r[i][j] = row.getBytes(j);
                     }
                     return r;
                 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a16adba9/tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java
----------------------------------------------------------------------
diff --git a/tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java b/tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java
index 4b8d69e..fb07edc 100644
--- a/tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java
+++ b/tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java
@@ -22,11 +22,14 @@ package org.apache.cassandra.stress.operations;
 
 
 import java.nio.ByteBuffer;
+import java.nio.charset.CharacterCodingException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.cassandra.utils.ByteBufferUtil;
+
 public class CqlReader extends CqlOperation<ByteBuffer[][]>
 {
 
@@ -49,11 +52,18 @@ public class CqlReader extends CqlOperation<ByteBuffer[][]>
         }
         else
         {
-            for (int i = 0; i < state.settings.columns.names.size() ; i++)
+            try
+            {
+                for (int i = 0; i < state.settings.columns.names.size() ; i++)
+                {
+                    if (i > 0)
+                        query.append(",");
+                    query.append(wrapInQuotesIfRequired(ByteBufferUtil.string(state.settings.columns.names.get(i))));
+                }
+            }
+            catch (CharacterCodingException e)
             {
-                if (i > 0)
-                    query.append(",");
-                query.append('?');
+                throw new IllegalStateException(e);
             }
         }
 
@@ -68,14 +78,6 @@ public class CqlReader extends CqlOperation<ByteBuffer[][]>
     @Override
     protected List<Object> getQueryParameters(byte[] key)
     {
-        if (state.settings.columns.names != null)
-        {
-            final List<Object> queryParams = new ArrayList<>();
-            for (ByteBuffer name : state.settings.columns.names)
-                queryParams.add(name);
-            queryParams.add(ByteBuffer.wrap(key));
-            return queryParams;
-        }
         return Collections.<Object>singletonList(ByteBuffer.wrap(key));
     }