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);