You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/06/29 03:26:03 UTC
svn commit: r1140935 - in /cassandra/trunk: CHANGES.txt
src/java/org/apache/cassandra/db/ColumnFamilyStore.java
src/java/org/apache/cassandra/db/Memtable.java
Author: jbellis
Date: Wed Jun 29 01:26:02 2011
New Revision: 1140935
URL: http://svn.apache.org/viewvc?rev=1140935&view=rev
Log:
don't bother persisting columns shadowed by a row tombstone
patch by Aaron Morton; reviewed by jbellis for CASSANDRA-2589
Modified:
cassandra/trunk/CHANGES.txt
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1140935&r1=1140934&r2=1140935&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Jun 29 01:26:02 2011
@@ -5,9 +5,11 @@
* make AbstractBounds.normalize de-overlapp overlapping ranges (CASSANDRA-2641)
* replace CollatingIterator, ReducingIterator with MergeIterator
(CASSANDRA-2062)
- * Fixed the ability to set compaction strategy in cli using create column family command (CASSANDRA-2778)
+ * Fixed the ability to set compaction strategy in cli using create column
+ family command (CASSANDRA-2778)
* clean up tmp files after failed compaction (CASSANDRA-2468)
* restrict repair streaming to specific columnfamilies (CASSANDRA-2280)
+ * don't bother persisting columns shadowed by a row tombstone (CASSANDRA-2589)
0.8.2
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1140935&r1=1140934&r2=1140935&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Wed Jun 29 01:26:02 2011
@@ -795,7 +795,7 @@ public class ColumnFamilyStore implement
return removeDeletedCF(cf, gcBefore);
}
- private static void removeDeletedColumnsOnly(ColumnFamily cf, int gcBefore)
+ public static void removeDeletedColumnsOnly(ColumnFamily cf, int gcBefore)
{
if (cf.isSuper())
removeDeletedSuper(cf, gcBefore);
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=1140935&r1=1140934&r2=1140935&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Wed Jun 29 01:26:02 2011
@@ -232,7 +232,15 @@ public class Memtable
// (we can't clear out the map as-we-go to free up memory,
// since the memtable is being used for queries in the "pending flush" category)
for (Map.Entry<DecoratedKey, ColumnFamily> entry : columnFamilies.entrySet())
- writer.append(entry.getKey(), entry.getValue());
+ {
+ ColumnFamily cf = entry.getValue();
+ if (cf.isMarkedForDelete())
+ {
+ // don't bother persisting data shadowed by a row tombstone
+ ColumnFamilyStore.removeDeletedColumnsOnly(cf, Integer.MIN_VALUE);
+ }
+ writer.append(entry.getKey(), cf);
+ }
ssTable = writer.closeAndOpenReader();
}