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]

Reply via email to