Chapter 16. Rolling Upgrades


In Red Hat JBoss Data Grid, rolling upgrades permit a cluster to be upgraded from one version to a new version without experiencing any downtime. This allows nodes to be upgraded without the need to restart the application or risk losing data.
In JBoss Data Grid, rolling upgrades can only be performed in Remote Client-Server mode using Hot Rod.

16.1. Rolling Upgrades Using REST

The following procedure outlines using Red Hat JBoss Data Grid installations as a remote grid using the REST protocol. This procedure applies to rolling upgrades for the grid, not the client application.

Procedure 16.1. Perform Rolling Upgrades Using REST

In the instructions, the source cluster refers to the old cluster that is currently in use and the target cluster refers to the destination cluster for our data.
  1. Create a Target Cluster

    Start a new cluster (the target cluster) with the new version of JBoss Data Grid. Use either different network settings of a different JGroups cluster name to set it apart from the source cluster.
  2. Migrate Caches to the Target Cluster

    To migrate multiple caches from the source and target cluster, configure a RestCacheStore with the following settings:
    1. Ensure that the host and port values point to the source cluster.
    2. Ensure that the path value points to the source cluster's REST endpoint.
  3. Restart Each Node

    Configure each client to point to the target cluster instead of the source cluster. One by one, restart each node in the cluster to apply the new configuration. Eventually, the target cluster will handle all requests instead of the source cluster. The target cluster then lazily loads data from the source cluster on demand using the RestCacheStore.
  4. Dump the Key Set

    When all connections have shifted to the target cluster, remove the source cluster key set. This is done either using JMX or the CLI as follows:
    1. Using JMX

      Invoke the recordKnownGlobalKeyset operation on the RollingUpgradeManager MBean on the source cluster for all caches to be migrated.
    2. Using the CLI

      Run the upgrade --dumpkeys command on the source cluster for all caches to be migrated. Optionally, use the --all switch to dump all the caches in the cluster.
  5. Fetch the Remaining Data

    The target cluster must fetch all the remaining data from the source cluster. This is done either using JMX or the CLI as follows:
    1. Using JMX

      Invoke the synchronizeData operation with the rest parameter specified on the RollingUpgradeManager MBean on the target cluster for all caches to be migrated.
    2. Using the CLI

      Run the upgrade --synchronize=rest on the target cluster for all caches to be migrated. Optionally, use the --all switch to synchronize all caches in the cluster.
  6. Disable the RestCacheStore

    Disable the RestCacheStore on the target cluster using either JMX or the CLI as follows:
    1. Using JMX

      Invoke the disconnectSource operation with the rest parameter specified on the RollingUpgradeManager MBean on the target cluster for all caches to be migrated.
    2. Using the CLI

      Run the upgrade --disconnectsource=rest command on the target cluster for all caches to be migrated. Optionally, use the --all switch to disconnect all caches in the cluster.
Result

Migration to the target cluster is complete. The source cluster can now be decommissioned

Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.