You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sam Tunnicliffe (Jira)" <ji...@apache.org> on 2020/09/02 18:31:00 UTC
[jira] [Updated] (CASSANDRA-14801) calculatePendingRanges no longer
safe for multiple adjacent range movements
[ https://issues.apache.org/jira/browse/CASSANDRA-14801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sam Tunnicliffe updated CASSANDRA-14801:
----------------------------------------
Status: Changes Suggested (was: Review In Progress)
Thanks [~Gerrrr], this looks pretty good to me, with a few caveats regarding the QT test.
* Move operations are not permitted when nodes have multiple tokens, so I think we can split the test into:
** multiple tokens per node with leave and bootstrap operations.
** single token nodes with leave, bootstrap and move operations.
* Any node should be moved at most once per {{Cluster}}
* The rf for each cluster was being hardcoded to 2, we ought to use {{Input.rf}} when constructing {{Cluster}}
I've pushed a commit with those suggestions [here|https://github.com/beobal/cassandra/tree/14801-trunk] and kicked off CI [here|https://app.circleci.com/pipelines/github/beobal/cassandra?branch=14801-trunk].
Would you mind taking a look at the suggestions?
> calculatePendingRanges no longer safe for multiple adjacent range movements
> ---------------------------------------------------------------------------
>
> Key: CASSANDRA-14801
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14801
> Project: Cassandra
> Issue Type: Bug
> Components: Legacy/Coordination, Legacy/Distributed Metadata
> Reporter: Benedict Elliott Smith
> Assignee: Aleksandr Sorokoumov
> Priority: Normal
> Labels: pull-request-available
> Fix For: 4.0, 4.0-beta
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Correctness depended upon the narrowing to a {{Set<InetAddressAndport>}}, which we no longer do - we maintain a collection of all {{Replica}}. Our {{RangesAtEndpoint}} collection built by {{getPendingRanges}} can as a result contain the same endpoint multiple times; and our {{EndpointsForToken}} obtained by {{TokenMetadata.pendingEndpointsFor}} may fail to be constructed, resulting in cluster-wide failures for writes to the affected token ranges for the duration of the range movement.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org