
Plan, test, and execute Cassandra upgrades with near zero downtime by upgrading one node at a time, guided by prerequisites and Java runtime version choices.
Master upgrading Apache Cassandra clusters with minimal downtime through practical, hands-on strategies, planning, testing, and safe execution for efficient, low-risk upgrades.
Acquire prerequisite knowledge on Apache Cassandra to effectively engage with this upgrade course. Expect experience installing, configuring, and administering Cassandra, and understanding how Cassandra manages large data sets.
Plan upgrade downtime to minimize impact. Upgrade one Cassandra node at a time for near zero downtime, test in staging, and validate backups, apps, and drivers for compatibility.
Upgrade Apache Cassandra using an in-place, rolling upgrade to update nodes one by one, minimizing downtime and avoiding new hardware while preserving data and cluster configuration.
Learn how Apache Cassandra differentiates current from archived software, review the latest releases on the downloads page, and plan upgrades to supported 5.0 and 4.1/4.0 versions for production environments.
Learn why downgrading the Cassandra version is discouraged and how it can lead to issues and data corruption.
Learn how Apache Cassandra versions align with Python support, highlighting that most versions require Python 3 or above, with only a few older versions needing Python 2.
Compare JDK and JRE, and OpenJDK versus Oracle JDK, noting Cassandra needs JRE, not JDK; OpenJDK is free, while Oracle JDK is commercial.
Install OpenJDK 11 on a Rocky Linux 9.5 server using DNF, verify internet access, and switch the active Java version from 8 to 11 with update-alternatives.
Install and switch to OpenJDK 17 on a Rocky Linux 9.5 server using dnf and update-alternatives, ensuring active Java version becomes 17 and noting that the operation requires internet access.
Execute update-alternatives to switch Java versions as root, selecting Java 8, 11, or 17 as the active JRE, with a system-wide impact on all users and applications.
Upgrade Cassandra by selecting the new version for the current cluster, downloading and preparing configs, then upgrading nodes one by one with nodetool upgrade sstables, switching Java if required.
Explain how sstable versions and formats define on-disk data structure and compatibility in Cassandra. Show upgrading older sstables to the latest format with the node tool upgrade sstables.
Explore why Cassandra backups are critical during upgrades to safeguard against data loss, enable recovery in case of failures, and provide a fallback if upgrade encounters data corruption or incompatibility.
Contrast minor and major upgrades in Apache Cassandra, detailing bug fixes and performance gains within the same major version, versus major changes with new features and compatibility planning.
Stagger upgrades across data centers in a multi-dc Cassandra cluster to minimize downtime, validate each center, and maintain availability during the rollout, one data center at a time.
Manage three Rocky Linux 9.5 servers to upgrade Apache Cassandra, performing one minor upgrade and two major upgrades using tarball versions.
Upgrade a three-node Cassandra 3.11.8 cluster to 3.11.17 using an in-place, minor version upgrade on Rocky Linux 9.5, Solid Cluster.
Review the Cassandra user's bash profile to configure environment variables for Cassandra home, config files, and logs, and add the Cassandra home bin folder to the path.
Compare cassandra.yaml across versions 3.11.8 and 3.11.7 using meld, and update the right-side file to match the left, covering cluster name, tokens, and new parameters like saved caches directory.
Compare cassandra-rackdc.properties across Cassandra versions 3.11.8 and 3.11.17, update the data center name on the right, and ignore new entries.
Compare the cassandra-env.sh file across Cassandra versions 3.11.8 and 3.11.17, identify four missing entries, and complete all changes to align the environment configuration.
Copy updated Cassandra configuration files to cluster nodes via secure copy and update rack dc properties file on each server, ensuring rack dc settings across versions 3.11.7, 3.11.8, and 3.17.8.
Execute nodetool upgradesstables on each node to upgrade ss tables from md format to new me format, while Cassandra performs compaction and completes the in-place upgrade from 3.11.8 to 3.11.17.
Gather essential cluster information to facilitate a smooth upgrade from Cassandra 3.11.7 to 4.1.7, as outlined in the Cassandra 3.11.17 cluster summary.
Download and extract Cassandra 4.1.7 binaries via wget, then copy with scp to remaining cluster nodes and review the configuration files.
Compare Cassandra config changes across versions 3.11.17 and 4.1.7, update cassandra.yaml with renamed and new parameters, and align settings using a file-diff tool.
Perform a rolling upgrade of a three-node cassandra cluster in a single data center from 3.11.17 to 4.1.7, after preparing binaries and configs, while maintaining uptime during the in-place upgrade.
Remove old Cassandra binaries and configuration folders for version 3.11.17 after upgrading the cluster, and apply the cleanup across all remaining nodes.
Upgrade a three-node Cassandra cluster from 4.1.7 to 5.0.2 using an in-place upgrade. Review covers home, binaries, config, data, logs, and the folder structure, including CDC files and commit logs.
Gather essential cluster information to ensure a smooth and efficient upgrade from Cassandra 4.1.7 to 5.0.2.
Download and extract Cassandra version 5.0.2 binaries, copy to cluster nodes via secure copy, and organize configuration files and permissions in the dedicated folders.
Compare cassandra.yaml across 4.1.7 and 5.0.2 and update the right-side file. Explore new 5.0 parameters like heap dump, incremental backups, snitch options, and storage attached indexes.
Compare the Cassandra env.sh files from version 4.1.7 and 5.0.2, note the missing entries, align both files, and implement all env.sh changes.
Configure Cassandra’s jvm options by setting xms and xmx to the same value to allocate heap memory, and enable the xlog gc log in java 11 and 17 server options.
Propagate version 5.0.2 Cassandra configurations across a multi-node cluster by securely copying updated files and updating the rack name in the rack dc properties on each node.
Learn how to perform a rolling upgrade of an Apache Cassandra cluster from 4.1.7 to 5.0.2, including preparing binaries and configs and upgrading nodes one by one.
Upgrade the Cassandra cluster to 5.0.2 by draining, stopping, then starting each node, updating configuration folders and binary links on all three Metal Gear servers.
Run nodetool upgradesstables on each node, upgrading all SS tables to the new NB format one node at a time, with compaction handling the upgrade to 5.0.2.
Upgrade Cassandra from Java 11 to Java 17 on Cassandra 5.0.2 using OpenJDK 17, update alternatives, drain and stop daemon, then restart the cluster.
*** This training course was recorded during December 2024 and Early 2025 ***
Welcome to this training course, a comprehensive guide to upgrading "Apache Cassandra" clusters with minimal risk and downtime. You will learn best practices for planning, testing and executing upgrades.
I have truly enjoyed creating this course, carefully designing each section to make the upgrade process clear, practical and engaging. Upgrading a distributed database like Cassandra may seem complex, but with the right knowledge and approach, it becomes an exciting challenge rather than a daunting task.
To successfully make use of the content in this course, you should have working knowledge of Apache Cassandra. You should know what is Apache Cassandra and you should know how to install and configure Apache Cassandra, along with basic administration knowledge.
We will discuss the importance of "the Upgrade".
Software upgrade typically includes significant improvements, new features, performance enhancements, bug fixes and updated security measures.
When performing a database upgrade, its essential to plan carefully to ensure availability and minimize downtime. Cassandra's distributed architecture allows upgrading one node at a time enabling "near zero" downtime.
After this training course, you will be able to design a proper plan to upgrade Apache Cassandra clusters for a smooth upgrade experience and seamless operation.
It is highly recommended to run one of the supported versions of "Apache Cassandra" in production environments.
We will learn, how to "install and configure" three different versions of Java Runtime Environment on a Linux server.
Upgrading Cassandra involves several key steps and we will discuss all these upgrade steps in detail.
We will discuss and understand the various SStable versions in Cassandra.
We will understand the differences in the "minor version upgrade" and the "major version upgrade".
We will take an existing Cassandra cluster with version 3.11.8 and we will upgrade it to version 3.11.17 (a minor version upgrade) using "in place" upgrade method.
Next, we will take an existing Cassandra cluster with version 3.11.17 and we will upgrade it to version 4.1.7 (a major version upgrade).
Similarly, we will take an existing Cassandra cluster with version 4.1.7 and we will upgrade it to version 5.0.2 and make it run with OpenJDK 17.
We will enable several new features which are ONLY available in Apache Cassandra release 5.0.
By the end of this training course, you will be equipped with the knowledge, best practices and real world insights needed to confidently handle any Apache Cassandra upgrade scenario.
Whether its a minor patch or a major version upgrade you will understand the steps, tools and precautions required to execute a smooth and successful upgrade.
With this solid foundation you will be ready to troubleshoot challenges, make informed decisions and ensure seamless upgrades with minimal risk and downtime. Rest assured, after this training course you will be more than ready to take on "any Cassandra upgrade" with confidence and clarity.