You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2016/06/30 11:19:17 UTC

[05/15] cassandra git commit: Account for partition deletions in tombstone histogram

Account for partition deletions in tombstone histogram

Patch by marcuse; reviewed by Sylvain Lebresne for CASSANDRA-12112


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5a9820d4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5a9820d4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5a9820d4

Branch: refs/heads/cassandra-3.9
Commit: 5a9820d4a4e3f911a4ec9735bae24261f2652d0f
Parents: cb14186
Author: Marcus Eriksson <ma...@apache.org>
Authored: Thu Jun 30 10:50:00 2016 +0200
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Thu Jun 30 13:12:03 2016 +0200

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 .../cassandra/db/compaction/LazilyCompactedRow.java  |  2 ++
 .../cassandra/db/compaction/CompactionsCQLTest.java  | 15 +++++++++++++++
 3 files changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a9820d4/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index feeaded..354a1c2 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.15
+ * Account for partition deletions in tombstone histogram (CASSANDRA-12112)
  * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043)
  * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854)
  * Don't try to get sstables for non-repairing column families (CASSANDRA-12077)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a9820d4/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 4ca9829..e9aecb2 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -234,6 +234,8 @@ public class LazilyCompactedRow extends AbstractCompactedRow
             minTimestampTracker.update(maxRowTombstone.isLive() ? Long.MAX_VALUE : maxRowTombstone.markedForDeleteAt);
             maxTimestampTracker.update(maxRowTombstone.markedForDeleteAt);
             maxDeletionTimeTracker.update(maxRowTombstone.isLive() ? Integer.MIN_VALUE : maxRowTombstone.localDeletionTime);
+            if (!maxRowTombstone.isLive())
+                tombstones.update(maxRowTombstone.localDeletionTime);
         }
 
         /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a9820d4/test/unit/org/apache/cassandra/db/compaction/CompactionsCQLTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionsCQLTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionsCQLTest.java
index 4553a45..c8fd781 100644
--- a/test/unit/org/apache/cassandra/db/compaction/CompactionsCQLTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CompactionsCQLTest.java
@@ -26,6 +26,8 @@ import org.apache.cassandra.cql3.CQLTester;
 import org.apache.cassandra.cql3.UntypedResultSet;
 import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.Keyspace;
+import org.apache.cassandra.io.sstable.SSTableReader;
+
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -189,6 +191,19 @@ public class CompactionsCQLTest extends CQLTester
 
     }
 
+    @Test
+    public void testTopLevelDeletion() throws Throwable
+    {
+        createTable("CREATE TABLE %s (id int PRIMARY KEY, id2 text)");
+        execute("delete from %s where id = 22");
+        getCurrentColumnFamilyStore().forceBlockingFlush();
+        for (SSTableReader sstable : getCurrentColumnFamilyStore().getSSTables())
+            assertFalse(sstable.getSSTableMetadata().estimatedTombstoneDropTime.getAsMap().isEmpty());
+        getCurrentColumnFamilyStore().forceMajorCompaction();
+        for (SSTableReader sstable : getCurrentColumnFamilyStore().getSSTables())
+            assertFalse(sstable.getSSTableMetadata().estimatedTombstoneDropTime.getAsMap().isEmpty());
+    }
+
 
 
     @Test(expected = IllegalArgumentException.class)