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;