[ https://issues.apache.org/jira/browse/CASSANDRA-14744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16613117#comment-16613117 ]
Benedict commented on CASSANDRA-14744: -------------------------------------- I don't think this is the issue you think it is? We can't read from pending replicas, but any transition from transient->full, or full->transient would see the node exist in *both* the natural *and* pending states (one as transient, the other full). So in either case it will remain available for read, via its 'natural' instance. Ideally we would go a bit further, and on read we might begin treating a full->transient transition as a transient node (to handle races with ring change updates), but this is already an issue for regular ring movements, and would entail a lot more network traffic. So probably the best solution for this is (as with many other things) strongly consistent range movements. > 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