You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/01/29 21:11:02 UTC

git commit: Release sstables upon rebuilding 2i

Updated Branches:
  refs/heads/cassandra-2.0 0be42463b -> 287745e54


Release sstables upon rebuilding 2i

patch by Sergio Bossa; reviewed by Aleksey Yeschenko for
CASSANDRA-6635


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/287745e5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/287745e5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/287745e5

Branch: refs/heads/cassandra-2.0
Commit: 287745e54ddc5785fa45dfa3903de426b0c1a255
Parents: 0be4246
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Wed Jan 29 14:10:18 2014 -0600
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Jan 29 14:10:18 2014 -0600

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/db/index/SecondaryIndex.java      | 22 +++++++++++++-------
 2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/287745e5/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ed32385..4009981 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -13,6 +13,7 @@
  * Avoid rare duplicate read repair triggering (CASSANDRA-6606)
  * Fix paging discardFirst (CASSANDRA-6555)
  * Fix ArrayIndexOutOfBoundsException in 2ndary index query (CASSANDRA-6470)
+ * Release sstables upon rebuilding 2i (CASSANDRA-6635)
 Merged from 1.2:
  * fsync compression metadata (CASSANDRA-6531)
  * Validate CF existence on execution for prepared statement (CASSANDRA-6535)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/287745e5/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
index 3b4a6ec..fda28f0 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
@@ -180,14 +180,20 @@ public abstract class SecondaryIndex
                 getIndexName(), StringUtils.join(baseCfs.getSSTables(), ", ")));
 
         Collection<SSTableReader> sstables = baseCfs.markCurrentSSTablesReferenced();
-        SecondaryIndexBuilder builder = new SecondaryIndexBuilder(baseCfs,
-                                                                  Collections.singleton(getIndexName()),
-                                                                  new ReducingKeyIterator(sstables));
-        Future<?> future = CompactionManager.instance.submitIndexBuild(builder);
-        FBUtilities.waitOnFuture(future);
-        forceBlockingFlush();
-
-        setIndexBuilt();
+        try
+        {
+            SecondaryIndexBuilder builder = new SecondaryIndexBuilder(baseCfs,
+                                                                      Collections.singleton(getIndexName()),
+                                                                      new ReducingKeyIterator(sstables));
+            Future<?> future = CompactionManager.instance.submitIndexBuild(builder);
+            FBUtilities.waitOnFuture(future);
+            forceBlockingFlush();
+            setIndexBuilt();
+        }
+        finally
+        {
+            SSTableReader.releaseReferences(sstables);
+        }
         logger.info("Index build of " + getIndexName() + " complete");
     }