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 2010/01/08 04:58:21 UTC

svn commit: r897087 - in /incubator/cassandra/trunk/src/java/org/apache/cassandra: db/ColumnFamilyStore.java db/Memtable.java io/SSTableReader.java

Author: jbellis
Date: Fri Jan  8 03:58:18 2010
New Revision: 897087

URL: http://svn.apache.org/viewvc?rev=897087&view=rev
Log:
minor cleanup of CFS.  patch by jbellis

Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=897087&r1=897086&r2=897087&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Fri Jan  8 03:58:18 2010
@@ -799,22 +799,22 @@
         try
         {
             // if we are querying subcolumns of a supercolumn, fetch the supercolumn with NQF, then filter in-memory.
-            if (filter.path.superColumnName != null)
+            if (filter.path.superColumnName == null)
             {
-                QueryFilter nameFilter = new NamesQueryFilter(filter.key, new QueryPath(columnFamily_), filter.path.superColumnName);
-                ColumnFamily cf = getColumnFamilyInternal(nameFilter, gcBefore);
-                if (cf == null || cf.getColumnCount() == 0)
-                    return cf;
-
-                assert cf.getSortedColumns().size() == 1;
-                SuperColumn sc = (SuperColumn)cf.getSortedColumns().iterator().next();
-                SuperColumn scFiltered = filter.filterSuperColumn(sc, gcBefore);
-                ColumnFamily cfFiltered = cf.cloneMeShallow();
-                cfFiltered.addColumn(scFiltered);
-                return removeDeleted(cfFiltered, gcBefore);
+                return removeDeleted(getTopLevelColumns(filter, gcBefore), gcBefore);
             }
 
-            return removeDeleted(getColumnFamilyInternal(filter, gcBefore), gcBefore);
+            QueryFilter nameFilter = new NamesQueryFilter(filter.key, new QueryPath(columnFamily_), filter.path.superColumnName);
+            ColumnFamily cf = getTopLevelColumns(nameFilter, gcBefore);
+            if (cf == null || cf.getColumnCount() == 0)
+                return cf;
+
+            assert cf.getSortedColumns().size() == 1;
+            SuperColumn sc = (SuperColumn)cf.getSortedColumns().iterator().next();
+            SuperColumn scFiltered = filter.filterSuperColumn(sc, gcBefore);
+            ColumnFamily cfFiltered = cf.cloneMeShallow();
+            cfFiltered.addColumn(scFiltered);
+            return removeDeleted(cfFiltered, gcBefore);
         }
         finally
         {
@@ -822,7 +822,7 @@
         }
     }
 
-    private ColumnFamily getColumnFamilyInternal(QueryFilter filter, int gcBefore) throws IOException
+    private ColumnFamily getTopLevelColumns(QueryFilter filter, int gcBefore) throws IOException
     {
         // we are querying top-level columns, do a merging fetch with indexes.
         List<ColumnIterator> iterators = new ArrayList<ColumnIterator>();
@@ -836,6 +836,9 @@
             try
             {
                 iter = filter.getMemColumnIterator(memtable_, getComparator());
+                // TODO this is a little subtle: the Memtable ColumnIterator has to be a shallow clone of the source CF,
+                // with deletion times set correctly, so we can use it as the "base" CF to add query results to.
+                // (for sstable ColumnIterators we do not care if it is a shallow clone or not.)
                 returnCF = iter.getColumnFamily();
             }
             finally

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=897087&r1=897086&r2=897087&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Fri Jan  8 03:58:18 2010
@@ -94,11 +94,6 @@
         return currentThroughput.get() >= this.THRESHOLD || currentOperations.get() >= this.THRESHOLD_COUNT;
     }
 
-    String getColumnFamily()
-    {
-    	return columnfamilyName;
-    }
-
     boolean isFrozen()
     {
         return isFrozen;

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java?rev=897087&r1=897086&r2=897087&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java Fri Jan  8 03:58:18 2010
@@ -151,8 +151,8 @@
         final Range range = StorageService.instance().getLocalPrimaryRange();
 
         Predicate<SSTable> cfpred = Predicates.alwaysTrue();
-        return getIndexedDecoratedKeysFor(cfpred,
-                                          new Predicate<DecoratedKey>(){
+        return getIndexedDecoratedKeysFor(cfpred, new Predicate<DecoratedKey>()
+        {
             public boolean apply(DecoratedKey dk)
             {
                return range.contains(dk.token);