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