Sam Tunnicliffe created CASSANDRA-18977:
-------------------------------------------
Summary: Improve CMS handoff and configuration
Key: CASSANDRA-18977
URL: https://issues.apache.org/jira/browse/CASSANDRA-18977
Project: Cassandra
Issue Type: Improvement
Components: Cluster/Membership
Reporter: Sam Tunnicliffe
Assignee: Alex Petrov
Attachments: ci_summary.html
The intial mechanism for configuring membership of the CMS is rather
simplistic. It requires the operator to select which nodes are members and to
execute nodetool commands to perform every individual change to the membership.
Handoff when a member is decommissioned or replaced also uses a naive strategy
for selecting a replacement member.
This ticket enables the CMS membership to be configured more declaratively, by
specifying the desired number of CMS members per-DC, much like replication
using {{{}NetworkTopologyStrategy{}}}.
Cassandra itself is responsible for selecting exactly which nodes should be CMS
members based on this configuration and will attempt to maintain rack diversity
if possible, with handoff of CMS membership handled in the same way.
When making changes to membership Cassandra will manage the entire transition
from the starting state to end state using an in-progress sequence to compose
the specific additions and removal operations.
Implementation can be found in:
[https://github.com/beobal/cassandra/commit/bcbb3f441d9df10207be38066c9752a08d62545b]
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]