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: [email protected]
For additional commands, e-mail: [email protected]