Special Considerations for Existing 10.x Customers Upgrading to VoltDB 11.x


VoltDB Home » Documentation » Special Considerations for Existing 10.x Customers Upgrading to VoltDB 11.x

Special Considerations for Existing 10.x Customers Upgrading to VoltDB 11.x





What's New in VoltDB V11.0

VoltDB 11 is a major release incorporating features from recent updates plus new capabilities. The major new features in V11 include:

  • VoltDB Topics — VoltDB Topics provide the intelligent streaming of VoltDB's existing import and export capabilities, but with the flexibility of Kafka-like streams. Topics allow for both inbound and outbound streaming to multiple client producers and consumers. They also use the existing Kafka interface to simplify integration into existing infrastructure. But most importantly, they allow for intelligent processing and manipulation of the data as it passes through the pipeline.

    VoltDB topics, which were released as a beta feature in V10.2, are now ready for production use. See the chapter on Streaming Data in the Using VoltDB manual for more information.

  • Support for Python 3.6 — The VoltDB command line tools have been upgraded to use Python version 3. Python 3 is commonly available on modern operating systems and so simplifies the process of configuring platforms for VoltDB.

  • New Kubernetes capabilities — Upgrades to the VoltDB Operator for Kubernetes provide two important new features:

    • Multi-cluster XDCR — It is now possible to create a cross datacenter replication (XDCR) network with three or more clusters. Additional Helm properties help simplify the management and maintenance of the XDCR clusters. See the chapter on Database Replication in the VoltDB Kubernetes Administrator's Guide for details.

    • VoltDB Topic Support — The Operator now provides the properties necessary to configure and start VoltDB topics in clusters running in Kubernetes.

  • VoltDB Java Client improvements— The VoltDB Java client interface has been updated with the following improvements:

    • Topology Awareness — Previously, there were two options for handling topology changes on the server, setReconnectOnConnectionLoss() and setTopologyChangeAware(), which were mutually exclusive. This limitation has been removed and setTopologyChangeAware() has been enhanced to include reconnection when the last connection is lost, further improving connectivity and resilience.

    • Non-Blocking Asynchronous Calls — Normally, the asynchronous callProcedure method returns an error if the client cannot queue the call because of backpressure. However, it is still possible for the call to block in certain cases. It is now possible to avoid blocking entirely by setting the setNonblockingAsync() configuration option on the client. See the Javadoc for details.

    • Connection timeouts — Handling of connection timeouts by the client has been improved. Now, if the client is able to detect a timeout before it is sent to the server, the client aborts the transaction and returns the procedure status GRACEFUL_FAILURE, with a status string of "Procedure call not queued: timed out waiting for host connection."

  • Security updates — The VoltDB Management Center (VMC) web-based console for VoltDB has been updated to the latest versions of the jQuery libraries to address security vulnerabilities. The current library versions for VMC are JQuery v3.5.1 and jQuery-UI v1.12.1.

Special Considerations for Existing Customers

Most of the new features and capabilities in VoltDB V11.0 do not impact existing applications. However, there are a few changes that require action for users upgrading from earlier versions. Also several deprecated features have now been removed. Existing customers should take note of of the following changes:

  • Supported platforms

    Ubuntu 16.04 is no longer a supported production platform for VoltDB. The currently supported operating systems for running production VoltDB databases are:

    • CentOS and Red Hat (RHEL) V7.0 and later or V8.0 and later

    • Ubuntu 18.04 and 20.04

  • Python 3.6 is now required

    The system requirements for VoltDB have been changed from Python 2.7 to Python 3.6.

  • Support for LIMIT PARTITION ROWS has been removed

    The LIMIT PARTITION ROWS clause of the CREATE TABLE statement has been removed. The USING TTL clause and scheduled tasks are the recommended replacements for this feature.

  • The deprecated @SnapshotStatus system procedure has been removed

    The @SnapshotStatus system procedure has been deleted. The @Statistics system procedure with the SNAPSHOTSUMMARY selector is the recommended replacement.