Few days after official release 2.8.2, VoltDB is already annoucing its next major release: VoltDB v3.0
What is VoltDB v3.0?
The VoltDB v3.0 release includes a set of user-visible features, including new SQL (specifically column functions), ad hoc SQL execution performance, Export enhancements, online schema changes, and a more streamlined application development process. Under the covers, however, VoltDB v3.0 includes a new transaction coordination architecture that reduces latency and improves transaction throughput.
We’ve worked hard over the past 6 months to reduce overhead within the VoltDB cluster by streamlining transaction and query processing. As part of this release, we’ve significantly reduced intra-node communication and also eliminated our dependency on synchronized clocks (via NTP) between cluster nodes for user transaction processing.
As a result, VoltDB v3.0 offers significantly higher throughput and lower latency, as well as offering easier installation and configuration, particularly in the cloud.
Immediate benefits of VoltDB v3.0 include the following:
- Lower overall latency
- Higher throughput
- Scale-out improvements – clusters with larger numbers of nodes
- Scale-up improvements – nodes with 10gE and more CPUs
- Low latency synchronous Client API
- Client affinity (for writes)
- Elimination of dependency on NTP
How Can You Get the VoltDB v3.0 Technical Preview?
The VoltDB v3.0 Technical Preview is available on a per-request basis immediately. To request a copy, please email us email@example.com. Note that this is a preview release and should only be used for evaluation purposes – it should not be put into production.
We are planning an open beta in November on a functionally complete code base, with plans to release VoltDB v3.0 at the end of this year.
The VoltDB v3.0 Technical Preview supports all current v2.8 functionality, including full durability with snapshots and command logging and ad hoc query throughput performance. It’s nearly a fully functional VoltDB database with the exception that the following functionality is not yet supported:
- Partition Detection
- Live Node Rejoin
- Database Replication
Partition detection and live node rejoin will be available in our open Beta in November.
Under The Covers of the VoltDB v3.0 Architecture
VoltDB v3.0 comprises an architectural change to the transaction serialization implementation within a VoltDB cluster. Specifically, the VoltDB transaction coordination strategy has been re-architected and significantly improved. In VoltDB versions 1.x and 2.x, transactions were globally ordered and ordered according to time. Each node on the cluster communicated with every other node to agree upon transaction ordering. Maintaining a global agreement based on time caused VoltDB to incur additional latency – intra-node communication agreement involving all nodes. This architecture required users to synchronize cluster node clocks using NTP, because any time drift between nodes would introduce artificial, unneeded latency to the system. This overhead, and the strict need to maintain clock synchronization has been eliminated from the VoltDB v3.0 code base.
For a deeper dive into the technology that makes VoltDB v3.0 tick, please see the following blog posts:
What to Expect from the VoltDB Technical Preview
Interacting with VoltDB v3.0 should feel similar, on the surface, to VoltDB v2.x. Simply install the preview kit, rebuild your application catalog, and run your VoltDB application.
Should you find any unexpected behavior, please let us know via the VoltDB forums, or by dropping us an email firstname.lastname@example.org. We’d love to hear our feedback – thanks for your interest in VoltDB.