You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/09/02 19:12:57 UTC
svn commit: r1164634 - in /cassandra/branches/cassandra-0.8: CHANGES.txt
src/java/org/apache/cassandra/db/ColumnFamilyStore.java
src/java/org/apache/cassandra/streaming/StreamInSession.java
Author: slebresne
Date: Fri Sep 2 17:12:56 2011
New Revision: 1164634
URL: http://svn.apache.org/viewvc?rev=1164634&view=rev
Log:
Don't try to build secondary indexes when there is none
patch by slebresne; reviewed by jbellis for CASSANDRA-3123
Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamInSession.java
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1164634&r1=1164633&r2=1164634&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Sep 2 17:12:56 2011
@@ -51,6 +51,8 @@
* fix handling of the empty byte buffer by ReversedType (CASSANDRA-3111)
* optionally skip log4j configuration (CASSANDRA-3061)
* bundle sstableloader with the debian package (CASSANDRA-3113)
+ * don't try to build secondary indexes when there is none (CASSANDRA-3123)
+
0.8.4
* include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972)
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1164634&r1=1164633&r2=1164634&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Fri Sep 2 17:12:56 2011
@@ -343,7 +343,7 @@ public class ColumnFamilyStore implement
{
throw new AssertionError(e);
}
- buildSecondaryIndexes(getSSTables(), FBUtilities.singleton(info.name));
+ maybeBuildSecondaryIndexes(getSSTables(), FBUtilities.singleton(info.name));
SystemTable.setIndexBuilt(table.name, indexedCfMetadata.cfName);
}
};
@@ -360,8 +360,15 @@ public class ColumnFamilyStore implement
: new LocalByPartionerType(StorageService.getPartitioner());
}
- public void buildSecondaryIndexes(Collection<SSTableReader> sstables, SortedSet<ByteBuffer> columns)
+ /**
+ * Build secondary indexes for the provided {@code columns}.
+ * This does nothing if {@code columns} is empty.
+ */
+ public void maybeBuildSecondaryIndexes(Collection<SSTableReader> sstables, SortedSet<ByteBuffer> columns)
{
+ if (columns.isEmpty())
+ return;
+
logger.info(String.format("Submitting index build of %s for data in %s",
metadata.comparator.getString(columns), StringUtils.join(sstables, ", ")));
Table.IndexBuilder builder = table.createIndexBuilder(this, columns, new ReducingKeyIterator(sstables));
@@ -542,7 +549,7 @@ public class ColumnFamilyStore implement
data.addSSTables(sstables); // this will call updateCacheSizes() for us
logger.info("Requesting a full secondary index re-build for " + table.name + "/" + columnFamily);
- buildSecondaryIndexes(sstables, getIndexedColumns());
+ maybeBuildSecondaryIndexes(sstables, getIndexedColumns());
logger.info("Setting up new generation: " + generation);
fileIndexGenerator.set(generation);
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamInSession.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamInSession.java?rev=1164634&r1=1164633&r2=1164634&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamInSession.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamInSession.java Fri Sep 2 17:12:56 2011
@@ -158,8 +158,8 @@ public class StreamInSession
// build secondary indexes
for (Map.Entry<ColumnFamilyStore, List<SSTableReader>> entry : cfstores.entrySet())
{
- if (entry.getKey() != null && !entry.getKey().getIndexedColumns().isEmpty())
- entry.getKey().buildSecondaryIndexes(entry.getValue(), entry.getKey().getIndexedColumns());
+ if (entry.getKey() != null)
+ entry.getKey().maybeBuildSecondaryIndexes(entry.getValue(), entry.getKey().getIndexedColumns());
}
// send reply to source that we're done