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

[jira] [Comment Edited] (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=16613835#comment-16613835 ] 

Ariel Weisberg edited comment on CASSANDRA-14744 at 9/13/18 5:41 PM:
---------------------------------------------------------------------

I think I get it. Natural replica calculations ignore the presence of pending and since it's there in the old state it will show up in natural with its old transient status and be usable for reads.

Writes, full -> transient we need it to be pending for a while because of ring disagreement and readers continuing to use it as full although it's not streaming related that it would cease to be pending. Transient -> full seems like it needs to be pending until it finishes streaming so it doesn't miss writes.

There is the issue of how this should impact group size for write quorums? It seems to me like these transitioning replicas maybe shouldn't change the number of responses necessary for a write quorum. Looking at ConsistencyLevel.blockForWrite it seems like they do?


was (Author: aweisberg):
I think I get it. Natural replica calculations ignore the presence of pending and since it's there in the old state it will show up in natural with its old transient status and be usable for reads.

Writes, full -> transient we need it to be pending for a while because of ring disagreement and readers continuing to use it as full although it's not streaming related that it would cease to be pending. Transient -> full doesn't seem like it needs to be pending it just needs to not be natural? 

There is the issue of how this should impact group size for write quorums? It seems to me like these transitioning replicas maybe shouldn't change the number of responses necessary for a quorum. Looking at ConsistencyLevel.blockForWrite it seems like they do?

> 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