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


Reply via email to