VoltDB 8 is a major release incorporating features from recent point releases plus new capabilities. The major new features in V8 include:
More Network Security — VoltDB now provides SSL/TLS encryption as an option on all inter-node and inter-cluster communication, including internal, external, and DR ports. See the chapter on "Security" in the Using VoltDB manual for details.
User-Defined Functions — It is now possible to define and declare your own functions for use in SQL statements. User-defined functions are written in Java and declared using the CREATE FUNCTION statement. See the chapter on "Creating Custom SQL Functions" in the VoltDB Guide to Performance and Customization manual for details.
Common Table Expressions — VoltDB SQL queries can now include common table expressions, using the WITH clause. Common table expressions help organize complex SQL queries and make them easier to read. VoltDB also supports recursive common table expressions, making it possible to evaluate complex tree and graph structures within a single statement. See the description of the SELECT statement in the Using VoltDB manual for details.
Kafka Enhancements — VoltDB now supports the latest releases of Apache Kafka, by default. The Kafka export connector continues to support all Kafka versions starting with 0.8.2. For import, the Kafka import connector and the kafkaloader command line utility now support Kafka 0.10.2 and later, up through and including the recently released version 1.0.0. For customers still using earlier versions of Kafka, Kafka 8 support is available as a configurable option for both the import connector and a legacy kafkaloader8 command line tool.
Python V3 API — VoltDB now supports the use of Python V3.x for developing client applications. The VoltDB Python client library (available from GitHub) supports both Python 2.7 and 3.x.
Most of the new features and capabilities in VoltDB V8.0 do not impact existing applications. However, there are a few changes that do require minor changes to the configuration when upgrading from earlier versions. Existing customers should take note of of the following changes:
Change to default Kafka versions for import
For the kafka import connector and the kafkaloader command line utility, the default Kafka
version has changed from 0.8.2 to 0.10.2 or later. For customers already using Kafka 0.10.2 or later, there are no
changes needed to their configuration, scripts, or applications. For customers who wish to continue using the older
Kafka version 0.8.2, they will need to add the attribute
version="8" to the import
connector configuration and/or use the command line utility kafkaloader8 instead of the default
The "elastic" attribute removed from <cluster>
An artifact of an old feature provided for backwards compatibility, the
elastic attribute of the
<cluster> element in the
configuration file was disabled and deprecated several years ago. It has now been removed. Although it is unlikely any
still exist, configuration files that do include this attribute will now fail to parse. Simply remove the attribute and
The <consistency> element removed from the configuration file
<consistency> element was recently deprecated, since "fast" read
consistency no longer provides any significant performance improvement over "safe" mode but does introduce potential
risks during failure scenarios. It has now been removed from the allowable configuration file syntax. If you included
<consistency> in your configuration file, please remove it before starting a
VoltDB 8.0 cluster.
Old commands for starting VoltDB are no longer supported
VoltDB 6.6 introduced two new integrated commands, init and start, for
starting VoltDB servers. At that time the old commands (
rejoin) were deprecated. The old commands have now been removed from
the product. If you still use the older commands, please update your scripts to use the new commands as described in the
chapter "Starting the Database" in the
Using VoltDB manual.