[ https://issues.apache.org/jira/browse/CASSANDRA-14759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16619311#comment-16619311 ]
Ariel Weisberg commented on CASSANDRA-14759: -------------------------------------------- I think I understand this. It's fixing a deficiency in write availability where transient -> full would cause that replica to be unavailable for meeting write quorum requirements. Since it would remain present in pending it would also increase group size in blockFor. {code} return natural.filter(r -> !r.isTransient() || !pending.contains(r.endpoint(), true)); {code} Specifically the {{!pending.contains(r.endpoint(), true)}} (use of an enum instead of true/false might be a hair easier to follow for that API) causes it to no longer appear in natural and in pending instead. Once you have the tests I'll do a final review. > Transient->Full movements mishandle consistency level upgrade > ------------------------------------------------------------- > > Key: CASSANDRA-14759 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14759 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Benedict > Assignee: Benedict > Priority: Major > Labels: Availability, correctness, transient-replication > Fix For: 4.0 > > > While we need treat a transitioning node as ‘full’ for writes, so that it can > safely begin serving full data requests once it has finished, we cannot > maintain it in the ‘pending’ collection else we will also increase our > consistency requirements by a node that doesn’t exist. -- 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