Upgrading from one major version of Volt to another may involve changes to the supported features and/or configuration of the software. In addition, each cluster must reboot as part of the upgrade process. Which is why it is important you plan ahead before starting the upgrade process.
There are essentially two flavors of the upgrade process. You can upgrade an individual Volt cluster, which will require some minimal downtime while the cluster reboots. Or you can use cross datacenter replication (XDCR) to upgrade each cluster sequentially, so although each cluster must reboot, the service as a whole remains available throughout the upgrade process. The advantage of an XDCR upgrade is that your business systems do not incur any interruption.
Once you decide on your approach, there are three steps to the upgrade process:
Prepare for the upgrade by reviewing the applicable changes to the Volt software, making any necessary changes to your business applications and/or schema, saving a copy of your current configuration and any special settings, and backing up the database.
Test the upgrade on a development server to ensure your applications run as expected after the upgrade.
Perform the upgrade in the production environment.
Since the process is the same for upgrading a test environment or upgrading production systems, the process is only described once for each platform in the following sections. However, the process is different for Kubernetes compared to bare metal or servers hosted on generic virtual machines; so there are separate sections for each platform type.
Finally, it is a good idea to review your upgrade plans in advance with your Volt Customer Success representative. So we strongly encourage you to engage them during the preparation phase where they can help you evaluate your business solutions for any obsolete coding or features, as well as identifying new features or improvements that could provide significant benefits to your specific business case.
Before upgrading the Volt Active Data software to a new major version, you should:
Read the upgrade notes (later in the manual) for all major versions included in the update.
Read the latest release notes for the final version you are upgrading to.
Update your applications and schema accordingly.
Test your changes on updated development systems to verify they work as expected.
Backup your database and schema as a VoltDB snapshot.
Make a record of your database and server configuration to capture any customisations you have made to your implementation.
As the product evolves, features are extended to improve performance and enhance their capabilities. At the same time, old and obsolete features are sometimes removed from the product. These feature changes occur primarily at major releases. The later chapters in this book provide notes on such changes in each of the major versions of VoltDB. So before upgrading, be sure to read the chapters for each of the major versions involved in the upgrade. For example, if you are upgrading from V9 to V10, read the chapter on upgrading to V10. If you are upgrading from V9 to V12, read the chapters on upgrading to V10, V11, and V12.
There may be additional improvements found after the initial release of any major version. Which is why you should also read the latest release notes for any minor updates to your target version.
Once you know what product changes need to be addressed, compare the upgrade notes for the major versions with your current application source code and schema. Be sure to make appropriate revisions where necessary to avoid obsolete functions and to take advantage of new features where possible.
Once any changes are complete, it is a good idea to test your planned upgrade on a development system to ensure it works as expected.
When you are ready to start the upgrade, be sure to backup your database as a safety precaution. You can use the voltadmin save command to take a snapshot of the current database schema and contents.
You should also save a copy of the current database configuration. There are actually two parts to saving the configuration. While logged onto one of the database servers, you can save the current configuration file using the voltdb get deployment command, specifying the location of the database root directory:
$ voltdb get deployment -D ~/myvoltserver/ --output=config.xml
You should also make a note of any environment variables or command switches used when starting the database. In particular, make sure you capture the current settings for the following environment variables that can significantly impact the server process:
Once you complete the preceding steps, you are ready to perform the upgrade.