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