VoltDB
10.1.6
April 6, 2021
This document provides information about known issues and limitations to the current release of VoltDB. If you encounter any problems not listed below, please be sure to report them to support@voltdb.com. Thank you.
VoltDB 10 is a major release incorporating features from recent updates plus new capabilities. The major new features in V10 include:
New VoltDB Operator for Kubernetes — VoltDB now offers a complete solution for running VoltDB databases in a Kubernetes cloud environment. VoltDB V10.0 provides managed control of the database startup process, a new VoltDB Operator for coordinating cluster activities, and Helm charts for managing the relationship between Kubernetes, VoltDB and the Operator. The VoltDB Kubernetes solution is available to Enterprise customers and includes support for all VoltDB functionality, including cross data center replication (XDCR). See the VoltDB Kubernetes Administrator's Guide for more information.
New Prometheus agent for VoltDB — For customers who use
Prometheus to monitor their systems, VoltDB now provides a Prometheus agent that can collect statistics from a running
cluster and make them available to the Prometheus engine. The Prometheus agent is available as a Kubernetes container or
as a separate process that can either run on one of the VoltDB servers or remotely and makes itself available through
port 1234 by default. See the README file in the /tools/monitoring/prometheus
folder in the
directory where you install VoltDB for details.
Enhancements to Export — Recent updates to export provide significant improvements to reliability and performance. The key advantages of the new export subsystem are:
Better throughput — Initial performance tests demonstrate significantly better throughput on export queues using the new subsystem over previous versions of VoltDB.
Adjustable thread pools — The new subsystem let's you set the thread pool size for export as a whole or to define thread pools for individual connectors.
Fewer duplicate rows — When cluster nodes fail and rejoin the cluster, the export subsystem resubmits certain rows to ensure they are delivered. The new subsystem keeps better track of the acknowledged rows and does not need to send as many duplicates to maintain the same level of durability.
Improved license management — Starting with VoltDB V10.0, specifying the product license has moved from the voltdb start command to the voltdb init command. In other words, you only have to specify the license once, when you initialize the database root directory, rather than every time you start the database. When you do specify the license on the init command, it is stored in the root directory the same way the configuration is.
The same rules apply about the default location of the license as before. So if you store your license in your
current working directory, your home directory, or the /voltdb
subfolder where VoltDB is installed,
you do not need to include the --license argument when initializing the database. Also note that the
--license argument on the voltdb start command is now deprecated but still
operational. So if you have scripts to start VoltDB that include --license on the
start command, they will continue to work. However, we recommend you change to the new syntax
whenever convenient because support for voltdb start --license may be removed in some future major
release.
Support for RHEL and CentOS V8 — After internal testing and validation, RHEL and CentOS V8 are now supported platforms for production use of VoltDB.
The process for upgrading from the recent versions of VoltDB is as follows:
Shutdown the database, creating a final snapshot (using voltadmin shutdown --save).
Upgrade the VoltDB software.
Restart the database (using voltdb start).
For DR clusters, see the section on "Upgrading VoltDB Software" in the VoltDB Administrator's Guide for special considerations related to DR upgrades. If you are upgrading from versions before V6.8, see the section on "Upgrading Older Versions of VoltDB Manually" in the same manual.
For customers upgrading from V8.x or earlier releases of VoltDB, please see the V8.0 Upgrade Notes.
For customers upgrading from V7.x or earlier releases of VoltDB, please see the V7.0 Upgrade Notes.
For customers upgrading from V6.x or earlier releases of VoltDB, please see the V6.0 Upgrade Notes.
Users of previous versions of VoltDB should take note of the following changes that might impact their existing applications.
1. Release V10.1.6 (April 6, 2021) | |
1.1. | Incorrect database replication (DR) statistics being reported by Prometheus |
There was an issue where Prometheus was randomly reporting additional DR producer statistics with an invalid timestamp. This problem has been resolved. | |
2. Release V10.1.5 (March 17, 2021) | |
2.1. | Recent improvements |
The following limitations in previous versions have been resolved:
| |
3. Release V10.1.4 (February 17, 2021) | |
3.1. | Remove requirement for Python 2.7.13 inadvertently added in an earlier release |
Improvements associated with SSL/TLS and IPv6 inadvertently added a requirement for Python version 2.7.13 in VoltDB versions 10.2 and 10.1.1. This constraint has been corrected and VoltDB now accepts Python version 2.7.5 and later. | |
4. Release V10.1.3 (December 18, 2020) | |
4.1. | Internal improvements to VoltDB Operator |
Code improvements to optimize the software upgrade process. | |
5. Release V10.1.2 (December 15, 2020) | |
5.1. | Adjustments and optimizations for Kubernetes settings |
Several settings associated with Kubernetes have been adjusted to provide a better experience when starting and running VoltDB in a Kubernetes environment. Those optimizations include:
| |
5.2. | Using load balancers to connect XDCR clusters in different Kubernetes domains |
The Helm charts for Kubernetes now allow for alternate methods of establishing a network mesh between clusters for cross datacenter replication (XDCR). In particular, you can now use per-pod load balancers so the clusters can connect to each other through externally available IP addresses. See the VoltDB Kubernetes Administrator's Guide for details. | |
5.3. | Security Notice |
A number of libraries included in the VoltDB distribution have been updated to eliminate security vulnerabilities, including Guava, Jackson, Jetty, Kafka, Log4J, and Netty | |
5.4. | Additional improvements |
The following limitations in previous versions have been resolved:
| |
6. Release V10.1.1 (November 13, 2020) | |
6.1. | Support for IPv6 |
VoltDB now supports both IPv4 and IPv6 networking. This includes support for IPv6-only environments. When entering IPv6 network addresses, be sure to enclose the address in square brackets. See the implementation note concerning IPv6 addresses for details. | |
7. Release V10.1 (October 30, 2020) | |
7.1. | Support for multiple VoltDB databases in the same Kubernetes cluster |
With the original release of VoltDB V10.0 and the VoltDB Operator, you could run multiple VoltDB databases in separate Kubernetes clusters or in separate namespaces within a single cluster. You can now run multiple databases within the same Kubernetes cluster and namespace. To do this, you start by running a single copy of the VoltDB Operator, using the following steps:
When running multiple databases within the same namespace, the only proviso is that you must not stop and delete the Operator until all of the databases it supports are stopped and deleted. | |
7.2. | Support for future upgrades in Kubernetes |
Another change to the VoltDB Operator for Kubernetes provides support for future upgrades to VoltDB installations. Although not available for upgrading V10.0 to V10.1, this new functionality will allow scripted upgrades for all future versions of VoltDB in Kubernetes. For the initial V10.0 release of the VoltDB Operator, the one-time process for upgrading to V10.1 is:
| |
7.3. | Improved SHOW TABLES and DESCRIBE information in sqlcmd |
The sqlcmd directives SHOW TABLES and DESCRIBE have been enhanced to provide additional information about the tables in the database schema. The SHOW TABLES directive now sorts the schema objects between regular tables, data replication (DR) tables, streams, and views. Similarly, the DESCRIBE directive now distinguishes between regular tables and DR tables. | |
7.4. | Additional information in the @Statistics and @SystemInformation system procedures |
Both the @Statistics and @SystemInformation system procedures have been enhanced to provide additional information. The @Statistics TABLE selector now includes two additional columns indicating whether the table is a DR table or not and, if it is defined as an export table, the name of its export target. The @SystemInformation DEPLOYMENT selector now includes rows for additional paths, such as DR and export overflow and cursors, when appropriate. | |
7.5. | Kafka import and export support Kafka version 2.6.0 and later |
The Kafka services within VoltDB (including Kafka import and export) support Kafka version 2.6.0 and later. Support for earlier versions of Kafka is deprecated. | |
7.6. | Additional improvements |
The following limitations in previous versions have been resolved:
| |
8. Release V10.0 (August 12, 2020) | |
8.1. | RabbitMQ export connector removed |
The export connector for RabbitMQ was deprecated in VoltDB version 9 and has now been removed from the product. | |
8.2. | Ubuntu 14.04 no longer supported as production platform |
Ubuntu 14, which is no longer supported by Canonical, has been dropped as a production platform for VoltDB. | |
8.3. | Additional improvements |
The following limitations in previous versions have been resolved:
|
The following are known limitations to the current release of VoltDB. Workarounds are suggested where applicable. However, it is important to note that these limitations are considered temporary and are likely to be corrected in future releases of the product.
The following notes provide details concerning how certain VoltDB features operate. The behavior is not considered incorrect. However, this information can be important when using specific components of the VoltDB product.