[ 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