Chapter 16. Performing rolling upgrades for Data Grid Server clusters Perform rolling upgrades of your Data Grid clusters to change between versions without downtime or data loss and migrate data over the Hot Rod protocol. 16.1. Setting up target Data Grid clusters Create a cluster that uses the Data Grid version to which you plan to upgrade and then connect the source cluster to the target cluster using a remote cache store. Prerequisites Install Data Grid Server nodes with the desired version for your target cluster. Important Ensure the network properties for the target cluster do not overlap with those for the source cluster. You should specify unique names for the target and source clusters in the JGroups transport configuration. Depending on your environment you can also use different network interfaces and port offsets to separate the target and source clusters. Procedure Create a remote cache store configuration, in JSON format, that allows the target cluster to connect to the source cluster. Remote cache stores on the target cluster use the Hot Rod protocol to retrieve data from the source cluster. { "remote-store": { "cache": "myCache", "shared": true, "raw-values": true, "security": { "authentication": { "digest": { "username": "username", "password": "changeme", "realm": "default" } } }, "remote-server": [ { "host": "127.0.0.1", "port": 12222 } ] } } Use the Data Grid Command Line Interface (CLI) or REST API to add the remote cache store configuration to the target cluster so it can connect to the source cluster. CLI: Use the migrate cluster connect command on the target cluster. REST API: Invoke a POST request that includes the remote store configuration in the payload with the rolling-upgrade/source-connection method. Repeat the preceding step for each cache that you want to migrate. Switch clients over to the target cluster, so it starts handling all requests. Update client configuration with the location of the target cluster. Restart clients. Important If you need to migrate Indexed caches you must first migrate the internal ___protobuf_metadata cache so that the .proto schemas defined on the source cluster will also be present on the target cluster. Additional resources Remote cache store configuration schema 16.2. Synchronizing data to target clusters When you set up a target Data Grid cluster and connect it to a source cluster, the target cluster can handle client requests using a remote cache store and load data on demand. To completely migrate data to the target cluster, so you can decommission the source cluster, you can synchronize data. This operation reads data from the source cluster and writes it to the target cluster. Data migrates to all nodes in the target cluster in parallel, with each node receiving a subset of the data. You must perform the synchronization for each cache that you want to migrate to the target cluster. Prerequisites Set up a target cluster with the appropriate Data Grid version. Procedure Start synchronizing each cache that you want to migrate to the target cluster with the Data Grid Command Line Interface (CLI) or REST API. CLI: Use the migrate cluster synchronize command. REST API: Use the ?action=sync-data parameter with a POST request. When the operation completes, Data Grid responds with the total number of entries copied to the target cluster. Disconnect each node in the target cluster from the source cluster. CLI: Use the migrate cluster disconnect command. REST API: Invoke a DELETE request. steps After you synchronize all data from the source cluster, the rolling upgrade process is complete. You can now decommission the source cluster.

Commands:
{ "remote-store": { "cache": "myCache", "shared": true, "raw-values": true, "security": { "authentication": { "digest": { "username": "username", "password": "changeme", "realm": "default" } } }, "remote-server": [ { "host": "127.0.0.1", "port": 12222 } ] } }
[//containers/default]> migrate cluster connect -c myCache --file=remote-store.json
POST /rest/v2/caches/myCache/rolling-upgrade/source-connection
migrate cluster synchronize -c myCache
POST /rest/v2/caches/myCache?action=sync-data
migrate cluster disconnect -c myCache
DELETE /rest/v2/caches/myCache/rolling-upgrade/source-connection