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