You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/06/25 23:27:01 UTC

git commit: Fix CC#collectTimeOrderedData() tombstone optimisations

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 2ab7b07ac -> 77bbcc18f


Fix CC#collectTimeOrderedData() tombstone optimisations

patch by Aleksey Yeschenko; reviewed by Jonathan Ellis for
CASSANDRA-7394


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

Branch: refs/heads/cassandra-2.0
Commit: 77bbcc18fa04ab16026fc42768d528c81adde8e1
Parents: 2ab7b07
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Wed Jun 25 14:25:58 2014 -0700
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Jun 25 14:25:58 2014 -0700

----------------------------------------------------------------------
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/db/CollationController.java | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/77bbcc18/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 1ff5675..84be96d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.9
+ * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
  * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364)
  * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401)
  * Fix native protocol CAS batches (CASSANDRA-7337)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/77bbcc18/src/java/org/apache/cassandra/db/CollationController.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/CollationController.java b/src/java/org/apache/cassandra/db/CollationController.java
index 33d77ee..4a08a26 100644
--- a/src/java/org/apache/cassandra/db/CollationController.java
+++ b/src/java/org/apache/cassandra/db/CollationController.java
@@ -77,6 +77,7 @@ public class CollationController
         try
         {
             Tracing.trace("Merging memtable contents");
+            long mostRecentRowTombstone = Long.MIN_VALUE;
             for (Memtable memtable : view.memtables)
             {
                 OnDiskAtomIterator iter = filter.getMemtableColumnIterator(memtable);
@@ -89,6 +90,7 @@ public class CollationController
                 }
 
                 container.addAll(temp, HeapAllocator.instance);
+                mostRecentRowTombstone = container.deletionInfo().getTopLevelDeletion().markedForDeleteAt;
                 temp.clear();
             }
 
@@ -102,7 +104,6 @@ public class CollationController
             Collections.sort(view.sstables, SSTable.maxTimestampComparator);
 
             // read sorted sstables
-            long mostRecentRowTombstone = Long.MIN_VALUE;
             for (SSTableReader sstable : view.sstables)
             {
                 // if we've already seen a row tombstone with a timestamp greater
@@ -122,8 +123,6 @@ public class CollationController
                 if (iter.getColumnFamily() != null)
                 {
                     ColumnFamily cf = iter.getColumnFamily();
-                    if (cf.isMarkedForDelete())
-                        mostRecentRowTombstone = cf.deletionInfo().getTopLevelDeletion().markedForDeleteAt;
                     temp.delete(cf);
                     sstablesIterated++;
                     while (iter.hasNext())
@@ -131,6 +130,7 @@ public class CollationController
                 }
 
                 container.addAll(temp, HeapAllocator.instance);
+                mostRecentRowTombstone = container.deletionInfo().getTopLevelDeletion().markedForDeleteAt;
                 temp.clear();
             }