You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/11/07 18:31:18 UTC

svn commit: r1198828 - in /cassandra/trunk: NEWS.txt src/java/org/apache/cassandra/service/ReadCallback.java src/java/org/apache/cassandra/thrift/CassandraServer.java src/java/org/apache/cassandra/thrift/ThriftValidation.java

Author: jbellis
Date: Mon Nov  7 17:31:17 2011
New Revision: 1198828

URL: http://svn.apache.org/viewvc?rev=1198828&view=rev
Log:
reject CL.ANY range scans as well as single/multi-row gets
patch by jbellis; reviewed by slebresne for CASSANDRA-3410

Modified:
    cassandra/trunk/NEWS.txt
    cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java
    cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
    cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java

Modified: cassandra/trunk/NEWS.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=1198828&r1=1198827&r2=1198828&view=diff
==============================================================================
--- cassandra/trunk/NEWS.txt (original)
+++ cassandra/trunk/NEWS.txt Mon Nov  7 17:31:17 2011
@@ -6,6 +6,10 @@ Upgrading
     - EACH_QUORUM ConsistencyLevel is only supported for writes and will now
       throw an InvalidRequestException when used for reads.  (Previous
       versions would silently perform a LOCAL_QUORUM read instead.)
+    - ANY ConsistencyLevel is only supported for writes and will now
+      throw an InvalidRequestException when used for reads.  (Previous
+      versions would silently perform a ONE read for range queries;
+      single-row and multiget reads already rejected ANY.)
 
 
 1.0.1

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java?rev=1198828&r1=1198827&r2=1198828&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/ReadCallback.java Mon Nov  7 17:31:17 2011
@@ -182,7 +182,6 @@ public class ReadCallback<T> implements 
         switch (consistencyLevel)
         {
             case ONE:
-            case ANY:
                 return 1;
             case TWO:
                 return 2;

Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=1198828&r1=1198827&r2=1198828&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java Mon Nov  7 17:31:17 2011
@@ -120,11 +120,6 @@ public class CassandraServer implements 
         // TODO - Support multiple column families per row, right now row only contains 1 column family
         Map<DecoratedKey, ColumnFamily> columnFamilyKeyMap = new HashMap<DecoratedKey, ColumnFamily>();
 
-        if (consistency_level == ConsistencyLevel.ANY)
-        {
-            throw new InvalidRequestException("Consistency level any may not be applied to read operations");
-        }
-
         List<Row> rows;
         try
         {

Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1198828&r1=1198827&r2=1198828&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java Mon Nov  7 17:31:17 2011
@@ -91,6 +91,10 @@ public class ThriftValidation
     {
         switch (cl)
         {
+            case ANY:
+                if (requestType == RequestType.READ)
+                    throw new InvalidRequestException("ANY ConsistencyLevel is only supported for writes");
+                break;
             case LOCAL_QUORUM:
                 requireNetworkTopologyStrategy(table, cl);
                 break;