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

[1/4] git commit: fix cassandra stress errors on reads with native protocol

Repository: cassandra
Updated Branches:
  refs/heads/trunk 5bbc54fe7 -> 99fbafee3


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/trunk
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));
     }
 


[4/4] git commit: Merge branch 'cassandra-2.1' into trunk

Posted by al...@apache.org.
Merge branch 'cassandra-2.1' into trunk

Conflicts:
	tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
	tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java


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

Branch: refs/heads/trunk
Commit: 99fbafee3e571ed7e73de8ed3fb9d9c27bcdb754
Parents: 5bbc54f 2c7622a
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Tue Apr 22 22:43:16 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Apr 22 22:43:16 2014 +0300

----------------------------------------------------------------------
 src/java/org/apache/cassandra/service/StorageProxy.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[2/4] git commit: Post-CASSANDRA-7058 fix

Posted by al...@apache.org.
Post-CASSANDRA-7058 fix


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

Branch: refs/heads/trunk
Commit: b9324e1b94f67f3d89096fcef4d157f9505364e9
Parents: 3a73e39
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Tue Apr 22 22:13:57 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Apr 22 22:13:57 2014 +0300

----------------------------------------------------------------------
 src/java/org/apache/cassandra/service/StorageProxy.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9324e1b/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 fc6ee3a..8196352 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -635,7 +635,7 @@ public class StorageProxy implements StorageProxyMBean
         {
             MessageOut<RowMutation> message = rm.createMessage();
             for (InetAddress target : endpoints)
-                MessagingService.instance().sendRR(message, target, handler);
+                MessagingService.instance().sendRR(message, target, handler, false);
         }
     }
 
@@ -814,7 +814,7 @@ public class StorageProxy implements StorageProxyMBean
                     // (1.1 knows how to forward old-style String message IDs; updated to int in 2.0)
                     if (localDataCenter.equals(dc) || MessagingService.instance().getVersion(destination) < MessagingService.VERSION_20)
                     {
-                        MessagingService.instance().sendRR(message, destination, responseHandler);
+                        MessagingService.instance().sendRR(message, destination, responseHandler, true);
                     }
                     else
                     {
@@ -937,7 +937,7 @@ public class StorageProxy implements StorageProxyMBean
             }
             message = message.withParameter(RowMutation.FORWARD_TO, out.getData());
             // send the combined message + forward headers
-            int id = MessagingService.instance().sendRR(message, target, handler);
+            int id = MessagingService.instance().sendRR(message, target, handler, true);
             logger.trace("Sending message to {}@{}", id, target);
         }
         catch (IOException e)
@@ -1000,7 +1000,7 @@ public class StorageProxy implements StorageProxyMBean
             AbstractWriteResponseHandler responseHandler = new WriteResponseHandler(endpoint, WriteType.COUNTER);
 
             Tracing.trace("Enqueuing counter update to {}", endpoint);
-            MessagingService.instance().sendRR(cm.makeMutationMessage(), endpoint, responseHandler);
+            MessagingService.instance().sendRR(cm.makeMutationMessage(), endpoint, responseHandler, false);
             return responseHandler;
         }
     }


[3/4] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1

Posted by al...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1

Conflicts:
	src/java/org/apache/cassandra/service/StorageProxy.java


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

Branch: refs/heads/trunk
Commit: 2c7622a65ce747819931bd52bc576a4cd055ba3d
Parents: a16adba b9324e1
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Tue Apr 22 22:16:27 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Apr 22 22:16:27 2014 +0300

----------------------------------------------------------------------
 src/java/org/apache/cassandra/service/StorageProxy.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c7622a6/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageProxy.java
index 33f6ff0,8196352..d8c5813
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@@ -642,15 -620,22 +642,15 @@@ public class StorageProxy implements St
                                                                          Keyspace.open(Keyspace.SYSTEM_KS),
                                                                          null,
                                                                          WriteType.SIMPLE);
 -        RowMutation rm = new RowMutation(Keyspace.SYSTEM_KS, UUIDType.instance.decompose(uuid), cf);
 -        updateBatchlog(rm, endpoints, handler);
 -    }
 -
 -    private static void updateBatchlog(RowMutation rm, Collection<InetAddress> endpoints, AbstractWriteResponseHandler handler)
 -    {
 -        if (endpoints.contains(FBUtilities.getBroadcastAddress()))
 -        {
 -            assert endpoints.size() == 1;
 -            insertLocal(rm, handler);
 -        }
 -        else
 +        Mutation mutation = new Mutation(Keyspace.SYSTEM_KS, UUIDType.instance.decompose(uuid));
 +        mutation.delete(SystemKeyspace.BATCHLOG_CF, FBUtilities.timestampMicros());
 +        MessageOut<Mutation> message = mutation.createMessage();
 +        for (InetAddress target : endpoints)
          {
 -            MessageOut<RowMutation> message = rm.createMessage();
 -            for (InetAddress target : endpoints)
 +            if (target.equals(FBUtilities.getBroadcastAddress()) && OPTIMIZE_LOCAL_REQUESTS)
 +                insertLocal(message.payload, handler);
 +            else
-                 MessagingService.instance().sendRR(message, target, handler);
+                 MessagingService.instance().sendRR(message, target, handler, false);
          }
      }
  
@@@ -823,9 -812,9 +823,9 @@@
                      String dc = DatabaseDescriptor.getEndpointSnitch().getDatacenter(destination);
                      // direct writes to local DC or old Cassandra versions
                      // (1.1 knows how to forward old-style String message IDs; updated to int in 2.0)
 -                    if (localDataCenter.equals(dc) || MessagingService.instance().getVersion(destination) < MessagingService.VERSION_20)
 +                    if (localDataCenter.equals(dc))
                      {
-                         MessagingService.instance().sendRR(message, destination, responseHandler);
+                         MessagingService.instance().sendRR(message, destination, responseHandler, true);
                      }
                      else
                      {
@@@ -946,9 -935,9 +946,9 @@@
                  out.writeInt(id);
                  logger.trace("Adding FWD message to {}@{}", id, destination);
              }
 -            message = message.withParameter(RowMutation.FORWARD_TO, out.getData());
 +            message = message.withParameter(Mutation.FORWARD_TO, out.getData());
              // send the combined message + forward headers
-             int id = MessagingService.instance().sendRR(message, target, handler);
+             int id = MessagingService.instance().sendRR(message, target, handler, true);
              logger.trace("Sending message to {}@{}", id, target);
          }
          catch (IOException e)