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);