You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by xe...@apache.org on 2011/09/28 17:46:48 UTC

svn commit: r1176926 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/db/compaction/CompactionManager.java

Author: xedin
Date: Wed Sep 28 15:46:48 2011
New Revision: 1176926

URL: http://svn.apache.org/viewvc?rev=1176926&view=rev
Log:
Fix Scrub compaction finishing
patch by Pavel Yaskevich; reviewed by Jonathan Ellis for (CASSANDRA-3255)

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionManager.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1176926&r1=1176925&r2=1176926&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Wed Sep 28 15:46:48 2011
@@ -12,7 +12,7 @@
    contains non-hex characters (CASSANDRA-3231)
  * Keep SimpleSnitch proximity ordering unchanged from what the Strategy
    generates, as intended (CASSANDRA-3262)
-
+ * fix Scrub compaction finishing (CASSANDRA-3255)
 
 0.8.6
  * revert CASSANDRA-2388

Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionManager.java?rev=1176926&r1=1176925&r2=1176926&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionManager.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionManager.java Wed Sep 28 15:46:48 2011
@@ -655,6 +655,8 @@ public class CompactionManager implement
         final BufferedRandomAccessFile dataFile = BufferedRandomAccessFile.getUncachingReader(sstable.getFilename());
         String indexFilename = sstable.descriptor.filenameFor(Component.PRIMARY_INDEX);
         BufferedRandomAccessFile indexFile = BufferedRandomAccessFile.getUncachingReader(indexFilename);
+        ScrubInfo scrubInfo = new ScrubInfo(dataFile, sstable);
+
         try
         {
             ByteBuffer nextIndexKey = ByteBufferUtil.readWithShortLength(indexFile);
@@ -664,10 +666,16 @@ public class CompactionManager implement
                 assert firstRowPositionFromIndex == 0 : firstRowPositionFromIndex;
             }
 
-            SSTableWriter writer = maybeCreateWriter(cfs, compactionFileLocation, expectedBloomFilterSize, null, Collections.singletonList(sstable));
-            executor.beginCompaction(new ScrubInfo(dataFile, sstable));
+            SSTableWriter writer = maybeCreateWriter(cfs,
+                                                     compactionFileLocation,
+                                                     expectedBloomFilterSize,
+                                                     null,
+                                                     Collections.singletonList(sstable));
+
             int goodRows = 0, badRows = 0, emptyRows = 0;
 
+            executor.beginCompaction(scrubInfo);
+
             while (!dataFile.isEOF())
             {
                 long rowStart = dataFile.getFilePointer();
@@ -807,6 +815,8 @@ public class CompactionManager implement
         {
             FileUtils.closeQuietly(dataFile);
             FileUtils.closeQuietly(indexFile);
+
+            executor.finishCompaction(scrubInfo);
         }
     }