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:28:23 UTC
svn commit: r1140938 -
/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
Author: jbellis
Date: Wed Jun 29 01:28:22 2011
New Revision: 1140938
URL: http://svn.apache.org/viewvc?rev=1140938&view=rev
Log:
use aaron's improved 2589 comment
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
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=1140938&r1=1140937&r2=1140938&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:28:22 2011
@@ -236,7 +236,10 @@ public class Memtable
ColumnFamily cf = entry.getValue();
if (cf.isMarkedForDelete())
{
- // don't bother persisting data shadowed by a row tombstone
+ // Pedantically, you could purge column level tombstones that are past GcGRace when writing to the SSTable.
+ // But it can result in unexpected behaviour where deletes never make it to disk,
+ // as they are lost and so cannot override existing column values. So we only remove deleted columns if there
+ // is a CF level tombstone to ensure the delete makes it into an SSTable.
ColumnFamilyStore.removeDeletedColumnsOnly(cf, Integer.MIN_VALUE);
}
writer.append(entry.getKey(), cf);