cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jbel...@apache.org
Subject svn commit: r938696 [2/2] - in /cassandra/trunk: ./ interface/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/thrift/ test/system/
Date Tue, 27 Apr 2010 22:12:27 GMT
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=938696&r1=938695&r2=938696&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java Tue Apr 27 22:12:27
2010
@@ -34,9 +34,7 @@ import org.apache.cassandra.db.migration
 import org.apache.cassandra.locator.AbstractReplicationStrategy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.commons.lang.ArrayUtils;
 
-import org.apache.cassandra.auth.AllowAllAuthenticator;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.*;
@@ -285,60 +283,25 @@ public class CassandraServer implements 
             logger.debug("get");
 
         checkLoginAuthorized(AccessLevel.READONLY);
+        String keyspace = keySpace.get();
 
-        ColumnOrSuperColumn column = multigetInternal(keySpace.get(), Arrays.asList(key),
column_path, consistency_level).get(key);
-        if (!column.isSetColumn() && !column.isSetSuper_column())
-        {
-            throw new NotFoundException();
-        }
-        return column;
-    }
-
-    /** always returns a ColumnOrSuperColumn for each key, even if there is no data for it
*/
-    public Map<byte[], ColumnOrSuperColumn> multiget(List<byte[]> keys, ColumnPath
column_path, ConsistencyLevel consistency_level)
-    throws InvalidRequestException, UnavailableException, TimedOutException
-    {
-        if (logger.isDebugEnabled())
-            logger.debug("multiget");
-
-        checkLoginAuthorized(AccessLevel.READONLY);
-
-        return multigetInternal(keySpace.get(), keys, column_path, consistency_level);
-    }
-
-    private Map<byte[], ColumnOrSuperColumn> multigetInternal(String table, List<byte[]>
keys, ColumnPath column_path, ConsistencyLevel consistency_level)
-    throws InvalidRequestException, UnavailableException, TimedOutException
-    {
-        ThriftValidation.validateColumnPath(table, column_path);
+        ThriftValidation.validateColumnPath(keyspace, column_path);
 
         QueryPath path = new QueryPath(column_path.column_family, column_path.column == null
? null : column_path.super_column);
         List<byte[]> nameAsList = Arrays.asList(column_path.column == null ? column_path.super_column
: column_path.column);
-        List<ReadCommand> commands = new ArrayList<ReadCommand>();
-        for (byte[] key: keys)
-        {
-            ThriftValidation.validateKey(key);
-            commands.add(new SliceByNamesReadCommand(table, key, path, nameAsList));
-        }
-
-        Map<byte[], ColumnOrSuperColumn> columnFamiliesMap = new HashMap<byte[],
ColumnOrSuperColumn>();
-        Map<DecoratedKey, ColumnFamily> cfamilies = readColumnFamily(commands, consistency_level);
-
+        ThriftValidation.validateKey(key);
+        ReadCommand command = new SliceByNamesReadCommand(keyspace, key, path, nameAsList);
 
-        for (ReadCommand command: commands)
-        {
-            ColumnFamily cf = cfamilies.get(StorageService.getPartitioner().decorateKey(command.key));
-            if (cf == null)
-            {
-                columnFamiliesMap.put(command.key, new ColumnOrSuperColumn());
-            }
-            else
-            {
-                List<ColumnOrSuperColumn> tcolumns = thriftifyColumnFamily(cf, command.queryPath.superColumnName
!= null, false);
-                columnFamiliesMap.put(command.key, tcolumns.size() > 0 ? tcolumns.iterator().next()
: new ColumnOrSuperColumn());
-            }
-        }
+        Map<DecoratedKey, ColumnFamily> cfamilies = readColumnFamily(Arrays.asList(command),
consistency_level);
 
-        return columnFamiliesMap;
+        ColumnFamily cf = cfamilies.get(StorageService.getPartitioner().decorateKey(command.key));
+        if (cf == null)
+            throw new NotFoundException();
+        List<ColumnOrSuperColumn> tcolumns = thriftifyColumnFamily(cf, command.queryPath.superColumnName
!= null, false);
+        if (tcolumns.isEmpty())
+            throw new NotFoundException();
+        assert tcolumns.size() == 1;
+        return tcolumns.get(0);
     }
 
     public int get_count(byte[] key, ColumnParent column_parent, SlicePredicate predicate,
ConsistencyLevel consistency_level)

Modified: cassandra/trunk/test/system/test_thrift_server.py
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_thrift_server.py?rev=938696&r1=938695&r2=938696&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_thrift_server.py (original)
+++ cassandra/trunk/test/system/test_thrift_server.py Tue Apr 27 22:12:27 2010
@@ -965,24 +965,6 @@ class TestMutations(ThriftTester):
         assert len(result) == 1
         assert result[0].column.name == _i64(4)
 
-    def test_multiget(self):
-        """Insert multiple keys and retrieve them using the multiget interface"""
-        _empty_login('Keyspace1')
-        # Generate a list of 10 keys and insert them
-        num_keys = 10
-        keys = ['key'+str(i) for i in range(1, num_keys+1)]
-        _insert_multi(keys)
-
-        # Retrieve all 10 keys
-        rows = client.multiget(keys, ColumnPath('Standard1', column='c1'), ConsistencyLevel.ONE)
-        keys1 = rows.keys().sort()
-        keys2 = keys.sort()
-
-        # Validate if the returned rows have the keys requested and if the ColumnOrSuperColumn
is what was inserted
-        for key in keys:
-            assert rows.has_key(key) == True
-            assert rows[key] == ColumnOrSuperColumn(column=Column(timestamp=0, name='c1',
value='value1'))
-
     def test_multiget_slice(self):
         """Insert multiple keys and retrieve them using the multiget_slice interface"""
 



Mime
View raw message