You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/06/21 14:48:28 UTC

svn commit: r1137982 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/db/compaction/CompactionController.java

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;