Merge branch cassandra-2.1 into trunk

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

Branch: refs/heads/trunk
Commit: 67feb71eef95abc738048e7fecedff41355977ac
Parents: c0aa746 4c22b16
Author: Pavel Yaskevich <[email protected]>
Authored: Thu Mar 13 14:21:49 2014 -0700
Committer: Pavel Yaskevich <[email protected]>
Committed: Thu Mar 13 14:21:49 2014 -0700

----------------------------------------------------------------------
 CHANGES.txt                                     |  11 ++
 ...assandra-driver-internal-only-1.0.2.post.zip | Bin 95836 -> 95846 bytes
 pylib/cqlshlib/cql3handling.py                  |   6 +-
 .../apache/cassandra/db/ColumnFamilyStore.java  |   2 +-
 .../db/composites/AbstractComposite.java        |   5 +-
 .../db/marshal/AbstractCompositeType.java       |  63 +++--------
 .../cassandra/db/marshal/CollectionType.java    |   6 -
 .../cassandra/db/marshal/CompositeType.java     |  12 +-
 .../db/marshal/DynamicCompositeType.java        |  14 +--
 .../serializers/CollectionSerializer.java       |   6 -
 .../cassandra/serializers/ListSerializer.java   |   9 +-
 .../cassandra/serializers/MapSerializer.java    |  17 +--
 .../cassandra/serializers/SetSerializer.java    |   9 +-
 .../cassandra/streaming/StreamWriter.java       |   8 +-
 .../apache/cassandra/utils/ByteBufferUtil.java  |  37 +++++++
 .../org/apache/cassandra/utils/FBUtilities.java |   2 +-
 .../org/apache/cassandra/stress/Operation.java  | 109 +++++++++++++------
 .../apache/cassandra/stress/StressAction.java   |   4 +-
 .../cassandra/stress/generatedata/RowGen.java   |   1 +
 .../generatedata/RowGenDistributedSize.java     |   7 ++
 .../stress/operations/CqlCounterAdder.java      |  21 ++--
 .../stress/operations/CqlCounterGetter.java     |  13 ++-
 .../operations/CqlIndexedRangeSlicer.java       |  18 +--
 .../stress/operations/CqlInserter.java          |  10 +-
 .../stress/operations/CqlOperation.java         |  68 ++++++++----
 .../stress/operations/CqlRangeSlicer.java       |   8 +-
 .../cassandra/stress/operations/CqlReader.java  |  12 +-
 .../stress/operations/ThriftCounterAdder.java   |  12 +-
 .../stress/operations/ThriftCounterGetter.java  |  15 +--
 .../operations/ThriftIndexedRangeSlicer.java    |   5 +-
 .../stress/operations/ThriftInserter.java       |   6 +-
 .../stress/operations/ThriftMultiGetter.java    |   3 +-
 .../stress/operations/ThriftRangeSlicer.java    |   3 +-
 .../stress/operations/ThriftReader.java         |  16 +--
 .../cassandra/stress/settings/Command.java      |  72 +++++++-----
 .../cassandra/stress/settings/Option.java       |   1 +
 .../stress/settings/OptionDataGen.java          |   5 +
 .../stress/settings/OptionDistribution.java     |  13 ++-
 .../cassandra/stress/settings/OptionMulti.java  |  39 ++++++-
 .../stress/settings/OptionReplication.java      |   2 +-
 .../cassandra/stress/settings/OptionSimple.java |   2 +-
 .../stress/settings/SettingsColumn.java         |  29 +++--
 .../stress/settings/SettingsCommand.java        |  30 ++---
 .../stress/settings/SettingsCommandMixed.java   |  46 ++++----
 .../stress/settings/SettingsCommandMulti.java   |  90 ---------------
 .../cassandra/stress/settings/SettingsKey.java  |   2 +-
 .../cassandra/stress/settings/SettingsMisc.java |   4 +-
 .../cassandra/stress/settings/SettingsMode.java |  31 +++++-
 .../stress/settings/SettingsSchema.java         |   7 +-
 .../stress/settings/SettingsTransport.java      |   2 +-
 .../stress/settings/StressSettings.java         |  30 +++--
 .../cassandra/stress/util/JavaDriverClient.java |   4 +-
 52 files changed, 506 insertions(+), 441 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/Operation.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/operations/CqlCounterAdder.java
----------------------------------------------------------------------
diff --cc 
tools/stress/src/org/apache/cassandra/stress/operations/CqlCounterAdder.java
index 910b6ed,9a8c37d..4e333a4
--- 
a/tools/stress/src/org/apache/cassandra/stress/operations/CqlCounterAdder.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/operations/CqlCounterAdder.java
@@@ -22,9 -22,12 +22,9 @@@ package org.apache.cassandra.stress.ope
  
  
  import java.nio.ByteBuffer;
- import java.util.Collections;
+ import java.util.ArrayList;
 -import java.util.Collections;
  import java.util.List;
  
 -import org.apache.cassandra.utils.ByteBufferUtil;
 -
  public class CqlCounterAdder extends CqlOperation<Integer>
  {
      public CqlCounterAdder(State state, long idx)
@@@ -35,11 -38,14 +35,7 @@@
      @Override
      protected String buildQuery()
      {
-         String counterCF = "Counter3";
- 
-         StringBuilder query = new StringBuilder("UPDATE 
").append(wrapInQuotes(counterCF));
- 
-         query.append(" SET ");
 -        String counterCF = state.isCql2() ? state.type.table : "Counter3";
 -
 -        StringBuilder query = new StringBuilder("UPDATE 
").append(wrapInQuotesIfRequired(counterCF));
 -
 -        if (state.isCql2())
 -            query.append(" USING CONSISTENCY 
").append(state.settings.command.consistencyLevel);
 -
 -        query.append(" SET ");
++        StringBuilder query = new StringBuilder("UPDATE \"Counter3\" SET ");
  
          // TODO : increment distribution subset of columns
          for (int i = 0; i < state.settings.columns.maxColumnsPerKey; i++)
@@@ -47,7 -53,7 +43,8 @@@
              if (i > 0)
                  query.append(",");
  
-             query.append('C').append(i).append("=C").append(i).append("+1");
 -            query.append('C').append(i).append("=C").append(i).append("+?");
++            String name = state.settings.columns.namestrs.get(i);
++            query.append(name).append("=").append(name).append("+?");
          }
          query.append(" WHERE KEY=?");
          return query.toString();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/operations/CqlCounterGetter.java
----------------------------------------------------------------------
diff --cc 
tools/stress/src/org/apache/cassandra/stress/operations/CqlCounterGetter.java
index 6186667,88d622e..28e6a12
--- 
a/tools/stress/src/org/apache/cassandra/stress/operations/CqlCounterGetter.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/operations/CqlCounterGetter.java
@@@ -42,7 -42,22 +42,12 @@@ public class CqlCounterGetter extends C
      @Override
      protected String buildQuery()
      {
-         return "SELECT * FROM \"Counter3\" USING CONSISTENCY " + 
state.settings.command.consistencyLevel + " WHERE KEY=?";
 -        StringBuilder query = new StringBuilder("SELECT ");
++        StringBuilder query = new StringBuilder("SELECT *");
+ 
+         // TODO: obey slice/noslice option (instead of always slicing)
 -        if (state.isCql2())
 -            query.append("FIRST 
").append(state.settings.columns.maxColumnsPerKey).append(" ''..''");
 -        else
 -            query.append("*");
 -
 -        String counterCF = state.isCql2() ? state.type.table : "Counter3";
 -
 -        query.append(" FROM ").append(wrapInQuotesIfRequired(counterCF));
 -
 -        if (state.isCql2())
 -            query.append(" USING CONSISTENCY 
").append(state.settings.command.consistencyLevel);
++        query.append(" FROM ").append(wrapInQuotes(state.type.table));
+ 
+         return query.append(" WHERE KEY=?").toString();
      }
  
      @Override

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
----------------------------------------------------------------------
diff --cc 
tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
index 25af04a,c971844..6febe26
--- 
a/tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/operations/CqlIndexedRangeSlicer.java
@@@ -48,10 -47,22 +47,11 @@@ public class CqlIndexedRangeSlicer exte
      @Override
      protected String buildQuery()
      {
-         StringBuilder query = new StringBuilder("SELECT * FROM 
\"Standard1\"");
-         final String columnName = getColumnName(1);
-         query.append(" WHERE ").append(columnName).append("=?")
-              .append(" AND KEY > ? LIMIT 
").append(((SettingsCommandMulti)state.settings.command).keysAtOnce);
 -        StringBuilder query = new StringBuilder("SELECT ");
 -
 -        if (state.isCql2())
 -            query.append(state.settings.columns.maxColumnsPerKey).append(" 
''..''");
 -        else
 -            query.append("*");
 -
 -        query.append(" FROM ");
 -        query.append(wrapInQuotesIfRequired(state.type.table));
 -
 -        if (state.isCql2())
 -            query.append(" USING CONSISTENCY 
").append(state.settings.command.consistencyLevel);
 -
 -        final String columnName = (state.settings.columns.namestrs.get(1));
 -        query.append(" WHERE ").append(columnName).append("=?")
++        final String indexColumn = (state.settings.columns.namestrs.get(1));
++        StringBuilder query = new StringBuilder("SELECT * FROM ");
++        query.append(wrapInQuotes(state.type.table));
++        query.append(" WHERE ").append(indexColumn).append("=?")
+                 .append(" AND KEY > ? LIMIT 
").append(state.settings.command.keysAtOnce);
          return query.toString();
      }
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/operations/CqlInserter.java
----------------------------------------------------------------------
diff --cc 
tools/stress/src/org/apache/cassandra/stress/operations/CqlInserter.java
index 1f8987d,71cdadf..45e375b
--- a/tools/stress/src/org/apache/cassandra/stress/operations/CqlInserter.java
+++ b/tools/stress/src/org/apache/cassandra/stress/operations/CqlInserter.java
@@@ -38,7 -40,10 +40,7 @@@ public class CqlInserter extends CqlOpe
      @Override
      protected String buildQuery()
      {
-         StringBuilder query = new StringBuilder("UPDATE 
").append(wrapInQuotes(state.settings.schema.columnFamily));
 -        StringBuilder query = new StringBuilder("UPDATE 
").append(wrapInQuotesIfRequired(state.type.table));
 -
 -        if (state.isCql2())
 -            query.append(" USING CONSISTENCY 
").append(state.settings.command.consistencyLevel);
++        StringBuilder query = new StringBuilder("UPDATE 
").append(wrapInQuotes(state.type.table));
  
          query.append(" SET ");
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java
----------------------------------------------------------------------
diff --cc 
tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java
index 8674cc0,5b27146..6da145e
--- a/tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java
+++ b/tools/stress/src/org/apache/cassandra/stress/operations/CqlOperation.java
@@@ -297,9 -303,9 +300,9 @@@ public abstract class CqlOperation<V> e
          }
  
          @Override
-         public <V> V execute(String query, ByteBuffer key, List<ByteBuffer> 
queryParams, ResultHandler<V> handler)
+         public <V> V execute(String query, ByteBuffer key, List<Object> 
queryParams, ResultHandler<V> handler)
          {
 -            String formattedQuery = formatCqlQuery(query, queryParams, 
state.isCql3());
 +            String formattedQuery = formatCqlQuery(query, queryParams);
              return 
handler.javaDriverHandler().apply(client.execute(formattedQuery, 
ThriftConversion.fromThrift(state.settings.command.consistencyLevel)));
          }
  
@@@ -329,9 -335,9 +332,9 @@@
          }
  
          @Override
-         public <V> V execute(String query, ByteBuffer key, List<ByteBuffer> 
queryParams, ResultHandler<V> handler)
+         public <V> V execute(String query, ByteBuffer key, List<Object> 
queryParams, ResultHandler<V> handler)
          {
 -            String formattedQuery = formatCqlQuery(query, queryParams, 
state.isCql3());
 +            String formattedQuery = formatCqlQuery(query, queryParams);
              return 
handler.thriftHandler().apply(client.execute(formattedQuery, 
ThriftConversion.fromThrift(state.settings.command.consistencyLevel)));
          }
  
@@@ -362,9 -368,9 +365,9 @@@
          }
  
          @Override
-         public <V> V execute(String query, ByteBuffer key, List<ByteBuffer> 
queryParams, ResultHandler<V> handler) throws TException
+         public <V> V execute(String query, ByteBuffer key, List<Object> 
queryParams, ResultHandler<V> handler) throws TException
          {
 -            String formattedQuery = formatCqlQuery(query, queryParams, true);
 +            String formattedQuery = formatCqlQuery(query, queryParams);
              return handler.simpleNativeHandler().apply(
                      client.execute_cql3_query(formattedQuery, key, 
Compression.NONE, state.settings.command.consistencyLevel)
              );
@@@ -608,7 -650,7 +611,7 @@@
       * @param parms sequence of string query parameters
       * @return formatted CQL query string
       */
-     private static String formatCqlQuery(String query, List<ByteBuffer> parms)
 -    private static String formatCqlQuery(String query, List<Object> parms, 
boolean isCql3)
++    private static String formatCqlQuery(String query, List<Object> parms)
      {
          int marker, position = 0;
          StringBuilder result = new StringBuilder();
@@@ -616,10 -658,14 +619,15 @@@
          if (-1 == (marker = query.indexOf('?')) || parms.size() == 0)
              return query;
  
-         for (ByteBuffer parm : parms)
+         for (Object parm : parms)
          {
              result.append(query.substring(position, marker));
-             result.append(getUnQuotedCqlBlob(parm));
++
+             if (parm instanceof ByteBuffer)
 -                result.append(getUnQuotedCqlBlob((ByteBuffer) parm, isCql3));
++                result.append(getUnQuotedCqlBlob((ByteBuffer) parm));
+             else if (parm instanceof Long)
+                 result.append(parm.toString());
+             else throw new AssertionError();
  
              position = marker + 1;
              if (-1 == (marker = query.indexOf('?', position + 1)))
@@@ -632,9 -678,25 +640,23 @@@
          return result.toString();
      }
  
+     private static List<ByteBuffer> toByteBufferParams(List<Object> params)
+     {
+         List<ByteBuffer> r = new ArrayList<>();
+         for (Object param : params)
+         {
+             if (param instanceof ByteBuffer)
+                 r.add((ByteBuffer) param);
+             else if (param instanceof Long)
+                 r.add(ByteBufferUtil.bytes((Long) param));
+             else throw new AssertionError();
+         }
+         return r;
+     }
+ 
 -    protected String wrapInQuotesIfRequired(String string)
 +    protected String wrapInQuotes(String string)
      {
 -        return state.settings.mode.cqlVersion == CqlVersion.CQL3
 -                ? "\"" + string + "\""
 -                : string;
 +        return "\"" + string + "\"";
      }
  
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/operations/CqlRangeSlicer.java
----------------------------------------------------------------------
diff --cc 
tools/stress/src/org/apache/cassandra/stress/operations/CqlRangeSlicer.java
index cce47fc,16cdff3..8b6d6fc
--- 
a/tools/stress/src/org/apache/cassandra/stress/operations/CqlRangeSlicer.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/operations/CqlRangeSlicer.java
@@@ -41,7 -41,13 +41,7 @@@ public class CqlRangeSlicer extends Cql
      @Override
      protected String buildQuery()
      {
-         return "SELECT FIRST " + state.settings.columns.maxColumnsPerKey + " 
''..'' FROM " + state.settings.schema.columnFamily + " WHERE KEY > ?";
 -        StringBuilder query = new StringBuilder("SELECT FIRST 
").append(state.settings.columns.maxColumnsPerKey)
 -                .append(" ''..'' FROM 
").append(wrapInQuotesIfRequired(state.type.table));
 -
 -        if (state.isCql2())
 -            query.append(" USING CONSISTENCY 
").append(state.settings.command.consistencyLevel);
 -
 -        return query.append(" WHERE KEY > ?").toString();
++        return "SELECT FIRST " + state.settings.columns.maxColumnsPerKey + " 
''..'' FROM " + wrapInQuotes(state.type.table) + " WHERE KEY > ?";
      }
  
      @Override

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java
----------------------------------------------------------------------
diff --cc tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java
index aa949d4,4b8d69e..c9d8870
--- a/tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java
+++ b/tools/stress/src/org/apache/cassandra/stress/operations/CqlReader.java
@@@ -40,9 -40,12 +40,9 @@@ public class CqlReader extends CqlOpera
      {
          StringBuilder query = new StringBuilder("SELECT ");
  
-         if (state.settings.columns.names == null)
+         if (state.settings.columns.slice)
          {
 -            if (state.isCql2())
 -                query.append("FIRST 
").append(state.settings.columns.maxColumnsPerKey).append(" ''..''");
 -            else
 -                query.append("*");
 +            query.append("*");
          }
          else
          {
@@@ -54,8 -57,10 +54,8 @@@
              }
          }
  
-         query.append(" FROM 
").append(wrapInQuotes(state.settings.schema.columnFamily));
 -        query.append(" FROM 
").append(wrapInQuotesIfRequired(state.type.table));
++        query.append(" FROM ").append(wrapInQuotes(state.type.table));
  
 -        if (state.isCql2())
 -            query.append(" USING CONSISTENCY 
").append(state.settings.command.consistencyLevel);
          query.append(" WHERE KEY=?");
          return query.toString();
      }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67feb71e/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java
----------------------------------------------------------------------
diff --cc 
tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java
index 93cfe05,95c3da3..09a875a
--- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java
+++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsMode.java
@@@ -126,7 -166,7 +145,7 @@@ public class SettingsMode implements Se
              return new SettingsMode(opts);
          }
  
-         GroupedOptions options = GroupedOptions.select(params, new 
ThriftOptions(), new Cql3Options(), new Cql3SimpleNativeOptions());
 -        GroupedOptions options = GroupedOptions.select(params, new 
ThriftOptions(), new Cql3NativeOptions(), new Cql3ThriftOptions(), new 
Cql3SimpleNativeOptions(), new Cql2ThriftOptions());
++        GroupedOptions options = GroupedOptions.select(params, new 
ThriftOptions(), new Cql3NativeOptions(), new Cql3SimpleNativeOptions());
          if (options == null)
          {
              printHelp();
@@@ -138,7 -178,7 +157,7 @@@
  
      public static void printHelp()
      {
-         GroupedOptions.printOptions(System.out, "-mode", new ThriftOptions(), 
new Cql3Options(), new Cql3SimpleNativeOptions());
 -        GroupedOptions.printOptions(System.out, "-mode", new ThriftOptions(), 
new Cql3NativeOptions(), new Cql3ThriftOptions(), new 
Cql3SimpleNativeOptions(), new Cql2ThriftOptions());
++        GroupedOptions.printOptions(System.out, "-mode", new ThriftOptions(), 
new Cql3NativeOptions(), new Cql3SimpleNativeOptions());
      }
  
      public static Runnable helpPrinter()

Reply via email to