You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Blake Eggleston (JIRA)" <ji...@apache.org> on 2018/03/15 21:06:00 UTC
[jira] [Created] (CASSANDRA-14316) Read repair mutations should be
sent to pending nodes
Blake Eggleston created CASSANDRA-14316:
-------------------------------------------
Summary: Read repair mutations should be sent to pending nodes
Key: CASSANDRA-14316
URL: https://issues.apache.org/jira/browse/CASSANDRA-14316
Project: Cassandra
Issue Type: Improvement
Reporter: Blake Eggleston
Since read repair doesn't mirror mutations to pending endpoints, it seems likely that there's an edge case that can break the monotonic quorum read guarantee blocking read repair is supposed to provide.
Assuming there are 3 nodes (A, B, & C) which replicate a token range. A new node D is added, which will take over some of A's token range. During the bootstrap of D, if there's a failed write that only makes it to a single node (A) after bootstrap has started, then there's a quorum read including A & B, which replicates that value to B. If A is removed when D finishes bootstrapping, a quorum read including node C & D will not see the value returned in the last quorum read which queried A & B.
Table to illustrate:
|state | A | B | C | D|
|1 begin | | | | pending|
|2 write |1 | | | pending|
|3 repair|1|1| | pending|
|4 joined| n/a |1| | |
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org