Author: xedin
Date: Tue Aug 16 19:22:27 2011
New Revision: 1158425
URL: http://svn.apache.org/viewvc?rev=1158425&view=rev
Log:
Make cleanup and normal compaction able to skip empty rows (rows containing
nothing but expired tombstones).
patch by Jonathan Ellis; reviewed by Pavel Yaskevich for CASSANDRA-3039
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=1158425&r1=1158424&r2=1158425&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Aug 16 19:22:27 2011
@@ -9,6 +9,8 @@
* fix to SSTableSimpleUnsortedWriter bufferSize calculation (CASSANDRA-3027)
* add a 'load new SSTables' functionality to JMX and corresponding "refresh"
command to the nodetool (CASSANDRA-2991)
+ * make cleanup and normal compaction able to skip empty rows
+ (rows containing nothing but expired tombstones) (CASSANDRA-3039)
0.8.4
* include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972)
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=1158425&r1=1158424&r2=1158425&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
Tue Aug 16 19:22:27 2011
@@ -569,6 +569,9 @@ public class CompactionManager implement
while (nni.hasNext())
{
AbstractCompactedRow row = nni.next();
+ if (row.isEmpty())
+ continue;
+
long position = writer.append(row);
totalkeysWritten++;
@@ -862,8 +865,11 @@ public class CompactionManager implement
SSTableIdentityIterator row = (SSTableIdentityIterator)
scanner.next();
if (Range.isTokenInRanges(row.getKey().token, ranges))
{
+ AbstractCompactedRow compactedRow =
controller.getCompactedRow(row);
+ if (compactedRow.isEmpty())
+ continue;
writer = maybeCreateWriter(cfs,
compactionFileLocation, expectedBloomFilterSize, writer,
Collections.singletonList(sstable));
- writer.append(controller.getCompactedRow(row));
+ writer.append(compactedRow);
totalkeysWritten++;
}
else