Upgrade a Harper Instance
Last updated
Last updated
This document describes best practices for upgrading self-hosted Harper instances. Harper can be upgraded using a combination of npm and built-in Harper upgrade scripts. Whenever upgrading your Harper installation it is recommended you make a backup of your data first. Note: This document applies to self-hosted Harper instances only. All will be upgraded by the Harper Cloud team.
Upgrading Harper is a two-step process. First the latest version of Harper must be downloaded from npm, then the Harper upgrade scripts will be utilized to ensure the newest features are available on the system.
Install the latest version of Harper using npm install -g harperdb
.
Note -g
should only be used if you installed Harper globally (which is recommended).
Run harperdb
to initiate the upgrade process.
Harper will then prompt you for all appropriate inputs and then run the upgrade directives.
is an easy way to install, remove, and switch between different versions of Node.js as required by various applications. More information, including directions on installing nvm can be found here: https://nvm.sh/.
Harper supports Node.js versions 14.0.0 and higher, however, please check our for our recommended Node.js version. To install a different version of Node.js with nvm, run the command:
To switch to a version of Node run:
To see the current running version of Node run:
With a handful of different versions of Node.js installed, run nvm with the ls
argument to list out all installed versions:
When upgrading Harper, we recommend also upgrading your Node version. Here we assume you're running on an older version of Node; the execution may look like this:
Switch to the older version of Node that Harper is running on (if it is not the current version):
Make sure Harper is not running:
Uninstall Harper. Note, this step is not required, but will clean up old artifacts of Harper. We recommend removing all other Harper installations to ensure the most recent version is always running.
Switch to the newer version of Node:
Install Harper globally
Run the upgrade script
Start Harper
To upgrade from NATS clustering to Plexus replication, follow these manual steps. They are designed for a fully replicating cluster to ensure minimal disruption during the upgrade process.
The core of this upgrade is the bridge node. This node will run both NATS and Plexus simultaneously, ensuring that transactions are relayed between the two systems during the transition. The bridge node is crucial in preventing any replication downtime, as it will handle transactions from NATS nodes to Plexus nodes and vice versa.
replication.url
– This should be set to the URL of the current Harper instance.
replication.hostname
– Since we are upgrading from NATS, this value should match the clustering.nodeName
of the current instance.
Set up the bridge node:
Choose one node to be the bridge node.
On this node, follow the "Enabling Plexus" steps from the previous section, but do not disable NATS clustering on this instance.
Stop the instance and perform the upgrade.
Start the instance. This node should now be running both Plexus and NATS.
Upgrade a node:
Choose a node that needs upgrading and enable Plexus by following the "Enable Plexus" steps.
Disable NATS by setting clustering.enabled
to false
.
Stop the instance and upgrade it.
Start the instance.
Repeat Step 2 on all remaining nodes that need to be upgraded.
Disable NATS on the bridge node by setting clustering.enabled
to false
and restart the instance.
Your cluster upgrade should now be complete, with no NATS processes running on any of the nodes.
To enable Plexus on a node that is already running NATS, you will need to update in the harperdb-config.yaml
file:
Call on the upgraded instance. In this call, omit subscriptions
so that a fully replicating cluster is built. The target node for this call should be the bridge node. Note: depending on your setup, you may need to expand this add_node
call to include .