[
https://issues.apache.org/jira/browse/CASSANDRA-14543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16525672#comment-16525672
]
Aleksey Yeschenko commented on CASSANDRA-14543:
-----------------------------------------------
Replaying *just* the tombstones might be safe-ish, but it’s only helping with
your issue in a very narrow time window. And there will be a price to pay for
this: hint dispatch will have to become less efficient if we end up inspecting
and filtering out every mutation.
So all in all I’m not a fan of this suggested change, I’m with [~KurtG] on this
one.
> Hinted handoff to replay purgeable tombstones
> ----------------------------------------------
>
> Key: CASSANDRA-14543
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14543
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Jay Zhuang
> Priority: Minor
>
> Hinted-handoff currently only dispatches and applies the mutations that are
> within GCGS:
> [{{Hint.java:97}}|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/hints/Hint.java#L97].
> Which is to make sure it won't resurrect any deleted data.
> But replaying tombstones should be safe, it could reduce the chance to have
> [un-repairable inconsistent
> data|https://lists.apache.org/thread.html/2d3d39d960143d4d2146ed2530821504ff855e832713dec7d0afd8ac@%3Cdev.cassandra.apache.org%3E].
> Here is the user scenario it tries to fix:
> {noformat}
> 1. Create a 3 nodes cluster
> 2. Create a table with small gc_grace_seconds (for reproducing purpose):
> CREATE KEYSPACE foo WITH replication = {'class': 'SimpleStrategy',
> 'replication_factor': 3};
> CREATE TABLE foo.bar (
> id int PRIMARY KEY,
> name text
> ) WITH gc_grace_seconds=30;
> 3. Insert data with consistency all:
> INSERT INTO foo.bar (id, name) VALUES(1, 'cstar');
> 4. stop 1 node
> $ ccm node2 stop
> 5. Delete the data with consistency quorum:
> DELETE FROM foo.bar WHERE id=1;
> 6. Wait 30 seconds and then start node2:
> $ ccm node2 start
> {noformat}
> Now, node2 has the data, node1/node3 have the purgeable tombstone. It
> triggers RR every time which sends data from node2 to node1/node3 but repairs
> nothing.
> With purgeable tombstones hints handoff, it at least will dispatch the
> tombstone and delete the data on node2. It won't fix the root cause but
> reduce the chance to have this issue.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]