Author: jbellis Date: Wed Oct 19 13:31:25 2011 New Revision: 1186207 URL: http://svn.apache.org/viewvc?rev=1186207&view=rev Log: cleanup for #3314
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/streaming/StreamInSession.java Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1186207&r1=1186206&r2=1186207&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Wed Oct 19 13:31:25 2011 @@ -886,11 +886,6 @@ public class ColumnFamilyStore implement return false; } - public boolean isKeyExistenceExpensive(Set<? extends SSTable> sstablesToIgnore) - { - return compactionStrategy.isKeyExistenceExpensive(sstablesToIgnore); - } - /* * Called after a BinaryMemtable flushes its in-memory data, or we add a file * via bootstrap. This information is cached in the ColumnFamilyStore. Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java?rev=1186207&r1=1186206&r2=1186207&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java Wed Oct 19 13:31:25 2011 @@ -772,7 +772,7 @@ public class CompactionManager implement } // flush to ensure we don't lose the tombstones on a restart, since they are not commitlog'd - cfs.indexManager.flushIndexes(); + cfs.indexManager.flushIndexesBlocking(); cfs.replaceCompactedSSTables(Arrays.asList(sstable), results); Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java?rev=1186207&r1=1186206&r2=1186207&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java Wed Oct 19 13:31:25 2011 @@ -29,8 +29,7 @@ import org.apache.cassandra.db.compactio import org.apache.cassandra.io.sstable.ReducingKeyIterator; /** - * Manages building an entire index from column family data - * Sent to compaction manager + * Manages building an entire index from column family data. Runs on to compaction manager. */ public class SecondaryIndexBuilder implements CompactionInfo.Holder { Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java?rev=1186207&r1=1186206&r2=1186207&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java Wed Oct 19 13:31:25 2011 @@ -97,8 +97,11 @@ public class SecondaryIndexManager /** - * Does a full rebuild of the indexes specified by columns from the sstables. + * Does a full, blocking rebuild of the indexes specified by columns from the sstables. * Does nothing if columns is empty. + * + * Caller must acquire and release references to the sstables used here. + * * @param sstables the data to build from * @param columns the list of columns to index * @throws IOException @@ -116,7 +119,7 @@ public class SecondaryIndexManager try { future.get(); - flushIndexes(); + flushIndexesBlocking(); } catch (InterruptedException e) { @@ -270,7 +273,7 @@ public class SecondaryIndexManager * @throws ExecutionException * @throws InterruptedException */ - public void flushIndexes() throws IOException + public void flushIndexesBlocking() throws IOException { for (Map.Entry<ByteBuffer, SecondaryIndex> entry : indexesByColumn.entrySet()) entry.getValue().forceBlockingFlush(); Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java?rev=1186207&r1=1186206&r2=1186207&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java Wed Oct 19 13:31:25 2011 @@ -30,6 +30,9 @@ import org.apache.cassandra.utils.Closea import org.apache.cassandra.utils.IMergeIterator; import org.apache.cassandra.utils.MergeIterator; +/** + * Caller must acquire and release references to the sstables used here. + */ public class ReducingKeyIterator implements CloseableIterator<DecoratedKey> { private final IMergeIterator<DecoratedKey,DecoratedKey> mi; Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/streaming/StreamInSession.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/streaming/StreamInSession.java?rev=1186207&r1=1186206&r2=1186207&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/streaming/StreamInSession.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/streaming/StreamInSession.java Wed Oct 19 13:31:25 2011 @@ -126,18 +126,16 @@ public class StreamInSession if (files.isEmpty()) { HashMap <ColumnFamilyStore, List<SSTableReader>> cfstores = new HashMap<ColumnFamilyStore, List<SSTableReader>>(); - List<SSTableReader> referenced = new LinkedList<SSTableReader>(); try { for (SSTableReader sstable : readers) { assert sstable.getTableName().equals(table); - // Acquiring the reference (for secondary index building) before adding it makes sure we don't have to care about races + // Acquire the reference (for secondary index building) before submitting the index build, + // so it can't get compacted out of existence in between if (!sstable.acquireReference()) - throw new RuntimeException("We shouldn't fail acquiring a reference on a sstable that has just been transfered"); - - referenced.add(sstable); + throw new AssertionError("We shouldn't fail acquiring a reference on a sstable that has just been transfered"); ColumnFamilyStore cfs = Table.open(sstable.getTableName()).getColumnFamilyStore(sstable.getColumnFamilyName()); cfs.addSSTable(sstable); @@ -155,7 +153,8 @@ public class StreamInSession } finally { - SSTableReader.releaseReferences(referenced); + for (List<SSTableReader> referenced : cfstores.values()) + SSTableReader.releaseReferences(referenced); } // send reply to source that we're done