You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2018/09/13 07:17:00 UTC

[jira] [Commented] (CASSANDRA-14744) TR transient -> full and full -> transient enters pending state reducing availability

    [ 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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org