This chapter describes what new features are introduced in V16.0 and what upgrade tasks may be required of existing customers.
Volt Active Data V16 is a major release that focuses on improved reliability of enterprise features. The key new features and enhancements in V16.0 include:
Enterprise Reliability and Infrastructure Hardening — Many of the later V15 releases were focused on hardening VoltDB enterprise features — such as in-service upgrade, XDCR, and K-Safety — against edge cases due to concurrent service interruptions, hardware failures, and unplanned resource limitations. V16 amalgamates these improvements to provide a more robust and dependable enterprise product.
New Python Client With Topology Awareness and Asynchronous Procedure Calls — VoltDB V16 includes a new Python client library with functionality similar to the Java client, such as topology awareness and asynchronous procedure calls. The new client, voltclient, is available in the bare metal kit for VoltDB as well as via PyPI as the pip-installable package, voltdbclient. See the chapter on "Using VoltDB with Other Programming Languages" in the Using VoltDB guide for more information.
Snapshot Transfer Utility — There is a new snapshot utility for copying complete snapshots — either new or existing — to external storage such as Amazon S3 or Google Cloud storage. See the appendix of snapshot utilities in the Volt Administrator's Guide for details.
Native Installation via OpenShift Web Console — It is now possible to add the Volt Operator in the OpenShift web console's Operator Hub so it can be installed and managed along with other application operators using the Operator Lifecycle Manager (OLM). See the Kubernetes Administrator's Guide for more information.
New DRTABLE Selector for @Statistics — The @Statistics system procedure has a new selector, DRTABLE, that lets you track the most recent table data received by the XDCR consumer on a per table, per partition basis. See the @Statistics reference page for more information.
Suspend/Resume In-Service Upgrades — While performing an in-service upgrade, it is now possible to pause the upgrade — for example, during periods of critical or extremely high volume business transactions — then resume the upgrade once the workload subsides. Suspending the upgrade ensures all cluster returns to full K-safety and further node upgrades are postponed until the upgrade resumes. You initiate the suspension by setting the
cluster.clusterSpec.suspendInServiceSoftwareUpgradeproperty to true and resume the upgrade by returning the property value to false. See the chapter on upgrading the cluster in the Kubernetes Administrator's Guide for details.Performing Rolling Restarts in Kubernetes — There is a new Helm property that lets you initiate a rolling restart of the nodes of a Volt cluster in Kubernetes. By setting the property
cluster.clusterSpec.rollingRestartto true, you start a rolling restart where each node stops and rejoins the cluster, one at a time. Unlike Kubernetes forced restarts, where the pods are shutdown without warning, this procedure performs an orderly shutdown of the VoltDB nodes, reducing the stress on the cluster during the restart process.Improvements to the Geospatial Functions — The S2 geometry library, used to support geospatial functions such as AREA() and DISTANCE(), has been updated providing improvements to performance and integrity.
Three way XDCR Replication Without Command Logging — Use of command logging is always recommended for XDCR clusters because it allows failed clusters to recover without requiring them to reinitialize the data. However, XDCR without command logging was supported in the past for two clusters. VoltDB V16 adds support for three cluster XDCR without command logging.
Documentation