Marcus Eriksson created CASSANDRA-20528:
-------------------------------------------

             Summary: Support topology-safe changes to Datacenter & Rack for 
live nodes
                 Key: CASSANDRA-20528
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20528
             Project: Apache Cassandra
          Issue Type: Improvement
          Components: Transactional Cluster Metadata
            Reporter: Marcus Eriksson
            Assignee: Sam Tunnicliffe


Prior to CEP-21 and CASSANDRA-19488 most snitch implementations would implement 
their own mechanism for determining the local DC & rack then propagate that 
information via gossip. 
When queried for the location of a remote endpoint, the gossip state is 
inspected. Changing the local DC/rack after initial startup is forbidden, but 
this can be disabled by use of system properties or by disabling the specific 
startup checks.
In almost all cases, this is a fundamentally unsafe operation and so in trunk 
there is currently no mechanism to modify a node's DC and rack in 
ClusterMetadata. The supported way to acheive the same result is to 
decommission and re-join nodes instead.

It is possible though to add a mechanism to support _safe_ topology changes, 
meaning only those which do not have a material effect on data placements. 
Examples include:
* Renaming an empty DC, i.e. nodes exist in the DC but no data is replicated to 
them
* When using NTS modifications to rack assignments which preserve existing rack 
diversity e.g. moving adjacent replicas to the same rack is not permitted   
* If using SimpleStrategy exclusively, any change to DC or rack is allowed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to