[ 
https://issues.apache.org/jira/browse/CASSANDRA-14407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16602950#comment-16602950
 ] 

Benedict commented on CASSANDRA-14407:
--------------------------------------

Fixes:
# If a transient replica sorts first by snitch, we could have bad data requests 
(i.e. to transient replicas)
# Ring movement inconsistency can break read consistency more easily with 
transient replication, so we introduce an acceptsTransient property that can be 
used by recipient nodes to reject a query it cannot safely handle (this is 
limited in its power, as both nodes could be behind on gossip wrt a new node 
joining the ring that has bumped the recipient to a transient position from a 
full one, but it’s better than nothing).  This should also help prevent bugs 
like the above, where we request a full data request accidentally from a 
transient replica.
# removed unnecessary ForwardingReadRepair, as we cannot employ read-repair 
with transient replication
# speculating with only one untried node that was transient would have failed 
to speculate

Follow-ups:
# Digest mismatches are not handled well for transient replication - I guess 
ideally this would operate in repaired/unrepaired separately, as we will need 
anyway for monotonic reads


> Transient Replication: Add support for correct reads when transient 
> replication is in use
> -----------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-14407
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14407
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Coordination
>            Reporter: Ariel Weisberg
>            Assignee: Blake Eggleston
>            Priority: Major
>             Fix For: 4.0
>
>
> Digest reads should never be sent to transient replicas.
> Mismatches with results from transient replicas shouldn't trigger read repair.
> Read repair should never attempt to repair a transient replica.
> Reads should always include at least one full replica. They should also 
> prefer transient replicas where possible.
> Range scans must ensure the entire scanned range performs replica selection 
> that satisfies the requirement that every range scanned includes one full 
> replica.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to