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); } }