Sam Tunnicliffe created CASSANDRA-18980:
-------------------------------------------

             Summary: Bring PropertyFileSnitch & RackInferringSnitch into line 
with TCM
                 Key: CASSANDRA-18980
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18980
             Project: Cassandra
          Issue Type: Task
          Components: Transactional Cluster Metadata
            Reporter: Sam Tunnicliffe
            Assignee: Sam Tunnicliffe
         Attachments: ci_summary.html

With TCM, all snitch implementations should only be responsible for the initial 
the topology configuration of the local node. For example, PFS should behave 
more like {{GossipingPropertyFileSnitch}} in that its configuration file 
specifies the DC & rack for the local node only. Each node in the cluster is 
responsible for updating its own topology info in {{ClusterMetadata}} when it 
is registered and the location of peers can be easily looked up there.

Modifying the DC & rack of a live node via GPFS/PFS config is desabled by 
default and strongly discouraged 
(CASSANDRA-10242/CASSANDRA-10243/CASSANDRA-9474) and there are 
{{StartupChecks}} in place to prevent changing location at startup. 

Given that modifying location of a joined node is a fundamentally unsafe 
operation, we should remove the ability to do so. The argument for allowing it 
has previously been that if a DC or cluster has no data, then the overhead of 
decommissioning and re-joining nodes to fix location is prohibitive. CEP-21 
fixes that by making those operations more reliable, so the override becomes 
less valuable. 


Implementation can be found in:
https://github.com/beobal/cassandra/commit/8ec1ea705210b7e2e38d888768ba83faa53754d8
https://github.com/beobal/cassandra/commit/7b41f063e04f25b8215318f51d908732b1f21f5f
https://github.com/beobal/cassandra/commit/09cdc5351ad049d97c7eeb53c4e68701c088a711

CI summary results attached. For right now, we've only been foccussing on unit 
tests, in-jvm & python dtests, so the failures in other suites are to be 
expected. Unfortunately, the archive containing the detailed results is too 
large to attach as a single file, so will look into the best way to work around 
that.
The intention is to fix all suites before merging the feature branch.

||Suite||Total||Passed||Skipped||Failed||Errors||
|jvm dtest|1508|1465|24|8|11|
|python dtest|1083|790|262|28|3|
|unit|12082|12006|61|6|9|




--
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