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 2012/06/14 23:21:43 UTC

[8/9] git commit: skip tombstones during hint replay patch by Vijay; reviewed by jbellis for CASSANDRA-4320

skip tombstones during hint replay
patch by Vijay; reviewed by jbellis for CASSANDRA-4320


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

Branch: refs/heads/trunk
Commit: 2820f050db002d653e3e6474ea5351db198ac71b
Parents: 5de91d0
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Jun 13 13:57:08 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Jun 13 13:57:08 2012 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/db/HintedHandOffManager.java  |    8 ++++++++
 2 files changed, 9 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2820f050/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 270a7ee..fcfff37 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.1.2
+ * skip tombstones during hint replay (CASSANDRA-4320)
  * fix NPE in compactionstats (CASSANDRA-4318)
  * enforce 1m min keycache for auto (CASSANDRA-4306)
  * Have DeletedColumn.isMFD always return true (CASSANDRA-4307)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2820f050/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
index 2a3e6b1..c7b160d 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -330,6 +330,14 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
                     }
                 }
 
+                // Skip tombstones:
+                // if we iterate quickly enough, it's possible that we could request a new page in the same millisecond
+                // in which the local deletion timestamp was generated on the last column in the old page, in which
+                // case the hint will have no columns (since it's deleted) but will still be included in the resultset
+                // since (even with gcgs=0) it's still a "relevant" tombstone.
+                if (!hint.isLive())
+                    continue;
+
                 IColumn versionColumn = hint.getSubColumn(ByteBufferUtil.bytes("version"));
                 IColumn tableColumn = hint.getSubColumn(ByteBufferUtil.bytes("table"));
                 IColumn keyColumn = hint.getSubColumn(ByteBufferUtil.bytes("key"));