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

Benedict commented on CASSANDRA-14744:
--------------------------------------

Have a look at 
[ReplicaLayout.haveWriteConflicts|https://github.com/belliottsmith/cassandra/blob/7b7d0025c2470e69fa89053f8c9c9e25f5039941/src/java/org/apache/cassandra/locator/ReplicaLayout.java#L260]
 from CASSANDRA-14705, which explains this.

Essentially, a transition is only used to consciously make the right choice at 
write time.  I hope in CASSANDRA-14666, we will begin caching the actual 
layouts (or possibly even the plans themselves), at which point they'll not 
even be seen.

TokenMetadata needs to be revisited as a whole, also, as brought up in 
CASSANDRA-14660.  At which point maybe we can also revisit how this 
intermediate state tracks pending/natural.

> TR transient -> full and full -> transient enters pending state reducing 
> availability
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-14744
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14744
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Ariel Weisberg
>            Priority: Major
>             Fix For: 4.x
>
>
> A transient replica transitioning to full and vice versa doesn't cease to be 
> the kind of replica it used to be before. I think this could cause 
> availability issues if a node goes down and it could even cause unavailable 
> with some ring movements with all nodes up. I haven't convinced myself 100% 
> this is true, but I think it should be possible to construct an example.
> We can't read from pending replicas so if a ring movement were to make 2/3 
> out of a group of 3 pending we would have this problem.
> The key difference here is that the existing replica should be available 
> during this period as the kind of replica it was before. A full replica 
> remains full until nodetool cleanup is run. A transient replica remains 
> transient the entire time.
> Obviously this doesn't hold for transitions to/from not replicated at all.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to