Chapter 9. Upgrading to Volt Active Data V14

Documentation

VoltDB Home » Documentation » Upgrade Guide

Chapter 9. Upgrading to Volt Active Data V14

This chapter describes what new features are introduced in V14.0 and what upgrade tasks may be required of existing customers.

9.1. What's New in Volt Active Data V14

Volt Active Data V14 is a major release that includes a redesign and enhancement to how you configure the database, as well as general cleanup of old and obsolete functions. The key new features and enhancements in V14.0 include:

  • Redesign of Database Configuration — Traditionally, VoltDB has been configured using a single XML file. Once the database was running, you could update the configuration using the voltadmin update command and passing it an updated XML file. But that file had to be complete; any options configured on initialization had to also be set for the update or else the update would fail or options would be reset to the default. You could not simply specify the one or two options to change.

    VoltDB now uses YAML properties for defining the configuration. The use of YAML has multiple advantages:

    • Ease-of-Use: YAML is a simple indented text format that is easier to read and edit than XML.

    • Modularity: You are no longer restricted to a single configuration file. You can specify multiple YAML files when you initialize the database and the contents are merged. This allows you to group and manage configuration options by category, such as security, export, directory paths, etc. For example, you could have a single file for configuring two XDCR databases identically and have separate YAML files for the XDCR settings, which require a unique ID per cluster:

      $ voltdb initialize -C common.yaml,xdcr_cluster1.yaml
    • Getting and Setting Individual Properties: You can now get and set individual configuration properties on a running database using the voltadmin get and set commands, rather than having to relist all of the original properties. For example:

      $ voltadmin set deployment.snapshot.frequency=2d

      You can also set multiple properties in a single set command using a list of dot notation settings or a YAML file of just those properties you want to change. Of course, you can still use the voltadmin update command, providing a complete set of properties in either YAML or XML.

    See the section on understanding YAML syntax in the Using VoltDB manual for more information on how to use YAML effectively.

    Finally, although XML format for configuring databases is now deprecated in favor of YAML — and we encourage the use of YAML — XML is still supported and continues to work as in previous releases for both the voltdb init and voltadmin update commands. So your existing scripts for starting and/or updating a database do not have to change at this time.

  • New voltadmin get and set Commands — As mentioned above, there are two new voltadmin commands: get and set. The voltadmin get command lets you retrieve part or all of the current configuration settings in YAML. If you specify "deployment" as the argument, you get all of the settings. Or you can specify a single property or group of properties by specifying the desired settings in dot notation. For example, you can get just the current K-safety factor with the voltadmin get deployment.cluster.kfactor command or all export settings with voltadmin get deployment.export. See the appendix of YAML properties in the Using VoltDB manual for details.

    Similarly, the voltadmin set command lets you modify individual properties. You can either specify an individual property using dot notion (such as voltadmin set deployment.snapshot.enabled=true) or a YAML file for setting multiple properties at once (for example, voltadmin set --file=newusers.yaml)

  • Updated results for @SystemInformation OVERVIEW — The return results for the @SystemInformation system procedure OVERVIEW selector have been updated and a new field added to make it clearer when a cluster is at full K-safety or not. Originally, the field CLUSTERSAFETY could be misleading because it only reported on whether a hash mismatch had forced the cluster into reduced K-safety. Its value did not change if one or more nodes had failed for other reasons. To make it less misleading, CLUSTERSAFETY now reports FULL or REDUCED depending on whether the cluster is fully functional or nodes are missing for any reason. A new field, REDUCEDSAFETY, reports on whether K-safety has been intentionally reduced due to a hash mismatch.

  • Updated Platform Support — Volt Active Data now supports Kubernetes up through version 1.30, Ubuntu version 24.04, and Java versions 17 and 21.

  • Removing Obsolete Functionality — Over the life cycle of version 13, a number of older features were deprecated and replaced by improved and enhanced implementations. WIth the release of V14, these deprecated items are being removed from the product. These include:

    • Embedded Volt Management Center (VMC) and HTTP JSON API

    • Standalone Prometheus agent