This chapter describes what new features are introduced in V11.0 and what upgrade tasks may be required of existing customers.
Volt 11 is a major release incorporating features from recent updates plus new capabilities. The major new features in V11 include:
Volt Topics — Volt Topics provide the intelligent streaming of Volt'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.
Volt 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 Volt 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 Volt.
New Kubernetes capabilities — Upgrades to the Volt 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 Volt Kubernetes Administrator's Guide for details.
Volt Topic Support — The Operator now provides the properties necessary to configure and start Volt topics in clusters running in Kubernetes.
Volt Java Client improvements— The Volt 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 Volt Management Center (VMC) web-based console for Volt 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.