Upgrade DataStax Enterprise 6.8 to 6.9

The upgrade process for DataStax Enterprise (DSE) provides minimal downtime (ideally zero). During this process, upgrade and restart one node at a time while other nodes continue to operate online. With a few exceptions, the cluster continues to work as though it were on the earlier version of DSE until all of the nodes in the cluster are upgraded.

Carefully review the planning guide and all upgrade instructions before you begin the upgrade to reduce the chance of errors and data loss. In addition, review the DSE 6.9 release notes to understand major changes in the new version.

Back up your existing installation

DataStax recommends backing up your data prior to any version upgrade.

A backup provides the ability to revert and restore all the data used in the previous version if necessary.

For automatic backups, use the OpsCenter Backup Service (recommended).

Upgrade SSTables

You must upgrade SSTables on your nodes before and after upgrading the DSE software binaries. Failure to upgrade SSTables will result in severe performance degradation and possible data loss.

Upgrade restrictions and limitations

Restrictions and limitations apply while a cluster is in a partially upgraded state. This means that some, but not all, nodes in the cluster have been upgraded. The cluster continues to work as though it were on the earlier version of DSE until all of the nodes in the cluster are upgraded. For this reason, you must avoid certain operations until the upgrade is complete on all nodes.

Nodes on different versions might show a schema disagreement during an upgrade. This is normal.

General restrictions

  • Do not enable new features.

  • Upgrade OpsCenter if necessary. The minimum compatible version for DSE 6.9 is OpsCenter 6.8.39, which also supports DSE 6.8.

  • Do not run nodetool repair.

  • Stop the OpsCenter Repair Service if enabled.

  • During the upgrade, do not bootstrap new nodes or decommission existing nodes.

  • Do not issue TRUNCATE or DDL related queries during the upgrade process.

  • Do not alter schemas for any workloads.

  • Complete the cluster-wide upgrade before the expiration of gc_grace_seconds (default 10 days) to ensure any repairs complete successfully.

  • If you disabled the DSE Performance Service before the upgrade, do not enable it during the upgrade.

Restrictions for nodes using security

  • Do not change security credentials or permissions until the upgrade is complete on all nodes.

  • If you are not already using Kerberos, do not set up Kerberos authentication before upgrading. First upgrade the cluster, and then set up Kerberos.

You need to modify the upgrade process if your cluster uses any form of internode encryption, including when you enable transitional mode to permit an internode encryption-based cluster to interact with unencrypted nodes. In DSE 6.9.7 or later, the ssl_storage_port is deprecated and the storage_port permits encrypted, unencrypted, and mixed encryption node-to-node communication.

To enable the cluster to continue to function during an upgrade to DSE 6.9.7 or later, do the following:

  1. Edit the cassandra.yaml file.

  2. In the server_encryption_options section, set the enable_legacy_ssl_storage_port option to true. This configuration enables listening on the deprecated ssl_storage_port.

  3. When you complete the upgrade for the cluster, set the enable_legacy_ssl_storage_port option to false. This configuration disables listening on the deprecated ssl_storage_port.

Restrictions for DSE Analytics nodes

Spark versions change between major DSE versions. The DSE 6.9 release notes indicate which version of Spark is used.

When upgrading to a major version of DSE, all nodes in a DSE datacenter that run Spark must be on the same version of Spark and the Spark jobs must be compiled for that version. Each datacenter acting as a Spark cluster must be on the same upgraded DSE version before reinitiating Spark jobs.

In the case where Spark jobs run against Graph keyspaces, you must update all of the nodes in the cluster first to avoid Spark jobs failing.

Restrictions for DSE Advanced Replication nodes

The system supports upgrades for only DSE Advanced Replication v2.

Application code and driver compatibility

Be sure to check driver compatibility between the previous and new database versions.

Prepare to upgrade

Follow these steps to prepare each DSE 6.8 node for the upgrade:

  1. Upgrade to the latest patch release on your current version. The latest patch release includes fixes that can simplify the upgrade process.

    Get the current DSE version:

    bin/dse -v
    current_dse_version
  2. Familiarize yourself with the changes and features in the DSE 6.9 release notes.

  3. Before upgrading, be sure that each node has adequate free disk space.

    Determine current DSE data disk space usage:

    sudo du -sh /var/lib/cassandra/data/
    Results
    3.9G	/var/lib/cassandra/data/

    Determine available disk space:

    sudo df -hT /
    Results
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/sda1      ext4   59G   16G   41G  28% /

    The required space depends on the compaction strategy. See Disk space.

  4. Upgrade the SSTables on each node to ensure that all SSTables are on the current version:

    nodetool upgradesstables

    Failure to upgrade SSTables when required results in a significant performance impact and increased disk usage.

    Use the --jobs option to set the number of SSTables that upgrade simultaneously. The default setting is 2, which minimizes impact on the cluster. Set to 0 to use all available compaction threads. DataStax recommends running the upgradesstables command on one node at a time or when using racks, one rack at a time.

    If the SSTables are already on the current version, the command returns immediately and no action is taken.

  5. Ensure that keyspace replication settings are correct for your environment:

    cqlsh --execute "DESCRIBE KEYSPACE keyspace-name;" | grep "replication"
    CREATE KEYSPACE keyspace-name WITH replication = {'class': 'NetworkTopologyStrategy, '**replication_factor**': '3'} AND durable_writes = true;
  6. Verify the Java runtime version and upgrade to a supported version if needed:

    java -version
    Results
    java version "11.0.x" YYYY-MM-DD LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.x+xx-LTS-219)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.x+xx-LTS-219, mixed mode)

    OpenJDK 11 (11.0.19 minimum) and Oracle Java SE 11 (JRE or JDK) (11.0.18 minimum) are supported. OpenJDK 11 is recommended.

  7. Verify the Python version and, if necessary, download and install a recommended version between Python 3.8 and 3.11:

    python --version
    Results
    Python 2.7.18
  8. Run nodetool repair to ensure that data on each replica is consistent with data on other nodes:

    nodetool repair -pr
  9. Back up any customized configuration files since they may be overwritten with default values during installation of the new version.

    If you backed up your installation using the instructions in Backing up a tarball installation or Backing up a package installation, the system includes your original configuration files in the archive.

Upgrade steps

You can also use OpsCenter 6.8 Lifecycle Manager (LCM) to clone a configuration profile and run an upgrade job on a datacenter or node.

The upgrade process requires upgrading and restarting one node at a time in the following order:

  1. In multiple datacenter clusters, upgrade every node in one datacenter before upgrading another datacenter.

  2. Upgrade the seed nodes within a datacenter first.

  3. Upgrade DSE Analytics datacenters.

  4. Upgrade transactional (DSE Graph) datacenters.

  5. Upgrade DSE Search nodes or datacenters.

Follow these steps for each node’s upgrade in your upgraded version, DSE 6.9.x:

  1. Flush the commit log of the current installation:

    nodetool drain
  2. Stop the node:

    • Package installations:

      sudo service dse stop
    • Tarball installations:

      installation_dir/bin/dse cassandra-stop
  3. Use the appropriate method to install the new product version on a supported platform:

  4. Before restarting the upgraded node, configure the new version by comparing changes in the new configuration files with the backup configuration files. Remove deprecated settings and update any new settings if required.

    You must use the new configuration files that are generated from the upgrade installation. Copy any parameters needed from your old configuration files into these new files.

    Do not replace the newly-generated configuration files with the old files.

    You can use the yaml_diff tool to compare backup YAML files with the upgraded YAML files:

    cd /usr/share/dse/tools/yamls
    ./yaml_diff path/to/yaml-file-old path/to/yaml-file-new
    Results
    ...
     CHANGES
    =========
    authenticator:
    - AllowAllAuthenticator
    + com.datastax.bdp.cassandra.auth.DseAuthenticator
    
    authorizer:
    - AllowAllAuthorizer
    + com.datastax.bdp.cassandra.auth.DseAuthorizer
    
    roles_validity_in_ms:
    - 2000
    + 120000
    ...
  5. Start the node:

  6. Verify that the upgraded datacenter names match the datacenter names in the keyspace schema definition:

    1. Get the node’s datacenter name:

      nodetool status | grep "Datacenter"
      Datacenter: datacenter-name
    2. Verify that the node’s datacenter name matches the datacenter name for a keyspace:

      cqlsh --execute "DESCRIBE KEYSPACE keyspace-name;" | grep "replication"
      CREATE KEYSPACE keyspace-name WITH replication = {'class': 'NetworkTopologyStrategy, 'datacenter-name': '3'};
  7. Review the logs for warnings, errors, and exceptions:

    grep -w 'WARNING\|ERROR\|exception' /var/log/cassandra/*.log

    Warnings, errors, and exceptions are frequently found in the logs when starting an upgraded node. Some of these log entries are informational to help you execute specific upgrade-related steps. If you find unexpected warnings, errors, or exceptions, contact DataStax Support.

    Non-standard log locations are configured in dse-env.sh.

  8. Repeat the upgrade process on each node in the cluster following the recommended upgrade order.

  9. After the entire cluster upgrade is complete, upgrade the SSTables on one node at a time or, when using racks, one rack at a time.

    Failure to upgrade SSTables when required results in a significant performance impact and increased disk usage and possible data loss. Upgrading is not complete until the SSTables are upgraded.

    nodetool upgradesstables

    You can use the --jobs option to set the number of SSTables that upgrade simultaneously. The default setting is 2, which minimizes impact on the cluster. Set to 0 to use all available compaction threads. DataStax recommends running the upgradesstables command on one node at a time or, when using racks, one rack at a time.

    You can run the upgradesstables command before all the nodes are upgraded as long as you run the command on only one node at a time, or, when using racks, one rack at a time. Running upgradesstables on too many nodes at once degrades performance.

General post-upgrade steps

After all nodes are upgraded:

  1. If you use the OpsCenter Repair Service, turn it on.

  2. Starting with DSE 6.7, the DSE Metrics Collector is enabled by default. This is a diagnostics information aggregator used to help facilitate DSE problem resolution. For more information on the DSE Metrics Collector, or to disable metrics collection, see DataStax Enterprise Metrics Collector.

  3. Spark Jobserver uses DSE custom version 8.0.4.45. Ensure that applications use the compatible Spark Jobserver API from the DataStax repository.

Lock DSE package versions

If you have upgraded a DSE package installation, then you can prevent future unintended upgrades by locking the package version:

RHEL yum installations
  1. Install yum-versionlock (one-time operation):

    sudo yum install yum-versionlock
  2. Lock the current DSE version:

    sudo yum versionlock dse-*
  3. Later, you can clear the version lock and allow upgrades:

    sudo yum versionlock clear

    For details, see the versionlock command.

Debian apt-get installations
  1. Hold the dse package at the current version:

    sudo apt-mark hold dse-*

    Later, you can remove the version hold and allow upgrades:

    sudo apt-mark unhold dse-*

    For details, see the apt-mark command.

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2025 DataStax, an IBM Company | Privacy policy | Terms of use | Manage Privacy Choices

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com