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,
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.
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:
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
SnapshotStatus system procedure has been deleted. The @Statistics system procedure with
the SNAPSHOTSUMMARY selector is the recommended replacement.