Author: slebresne
Date: Tue Jun 21 12:48:28 2011
New Revision: 1137982

URL: http://svn.apache.org/viewvc?rev=1137982&view=rev
Log:
Purge tombstones even if the row is in only one sstable
patch by slebresne; reviewed by jbellis for CASSANDRA-2801

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

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1137982&r1=1137981&r2=1137982&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Jun 21 12:48:28 2011
@@ -68,6 +68,7 @@
  * Add startup flag to renew counter node id (CASSANDRA-2788)
  * add jamm agent to cassandra.bat (CASSANDRA-2787)
  * fix repair hanging if a neighbor has nothing to send (CASSANDRA-2797)
+ * purge tombstone even if row is in only one sstable (CASSANDRA-2801)
 
 
 0.8.0-final

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionController.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionController.java?rev=1137982&r1=1137981&r2=1137982&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionController.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionController.java
 Tue Jun 21 12:48:28 2011
@@ -106,14 +106,13 @@ public class CompactionController
     /**
      * @return an AbstractCompactedRow implementation to write the merged rows 
in question.
      *
-     * If there is a single source row, the data is from a current-version 
sstable,
-     * and we aren't forcing deserialization for scrub,
-     * write it unchanged.  Otherwise, we deserialize, purge tombstones, and
-     * reserialize in the latest version.
+     * If there is a single source row, the data is from a current-version 
sstable, we don't
+     * need to purge and we aren't forcing deserialization for scrub, write it 
unchanged.
+     * Otherwise, we deserialize, purge tombstones, and reserialize in the 
latest version.
      */
     public AbstractCompactedRow getCompactedRow(List<SSTableIdentityIterator> 
rows)
     {
-        if (rows.size() == 1 && !needDeserialize())
+        if (rows.size() == 1 && !needDeserialize() && 
!shouldPurge(rows.get(0).getKey()))
             return new EchoedRow(rows.get(0));
 
         long rowSize = 0;


Reply via email to