Isaac Reath created CASSSIDECAR-276:
---------------------------------------
Summary: Add Sidecar support for orchestrated Cassandra version
upgrades
Key: CASSSIDECAR-276
URL: https://issues.apache.org/jira/browse/CASSSIDECAR-276
Project: Sidecar for Apache Cassandra
Issue Type: Improvement
Reporter: Isaac Reath
Upgrading a Cassandra cluster, particularly between major versions like 4 to 5,
involves a multi-step process with significant manual intervention. This
includes:
* Verifying version compatibility.
* Rewriting configurations to remove deprecated configurations & setting
values for newly added configurations.
* Performing a number of rolling restarts with changes to the
storage_compatibility_mode setting.
* Executing post-upgrade steps such as nodetool upgradesstables.
This ticket proposes adding new endpoints in Sidecar to manage the entire
lifecycle of a Cassandra version upgrade.
_Scope_
* Add an upgrade management endpoint that supports:
* Automatic execution of pre-upgrade steps.
* A rolling restart to upgrade nodes to Cassandra 5 in CASSANDRA_4 storage
compatibility mode (leveraging CASSSIDECAR-274).
* A configuration update to set storage_compatibility_mode to UPGRADING
(leveraging CASSSIDECAR-275).
* A second configuration update to set storage_compatibility_mode to NONE.
* A rolling execution of nodetool upgradesstables across the cluster.
* Add a status endpoint to monitor the progress and current state of an
upgrade.
* Add control endpoints to pause, abort, or roll back the upgrade in case of
failure or operator intervention.
The implementation should be designed with extensibility in mind to support
future major version upgrades (e.g., Cassandra 5 to 6). Beyond major versions,
this API should also support the simpler case where we are upgrading between
minor / patch versions (e.g., 5.0.3 to 5.0.4) by running a rolling restart that
stops the existing Cassandra instance and starts a new instance using the new
version and skipping the additional steps required for a major version upgrade.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]