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