Introducing VoltDB 3.0
Curator's Note: The content of this article was originally written by John Piekos over at the VoltDB blog.
The VoltDB engineering team is thrilled to announce that VoltDB 3.0 is now available! Over the past six months we’ve added a ton of features to VoltDB 3.0. This blog post lists the highlights, but that just scratches the surface. Look for future blog posts to dive into specific areas of version 3 functionality.
So let’s jump into what’s new in VoltDB 3.0…
VoltDB 3.0 has lower latency and more throughput than the VoltDB v2.x release. We spent much of the past year re-engineering the transaction coordination architecture to minimize the communication between cluster nodes during transaction processing yet still provide full ACID properties. The result is that version 3.0 executes at a significantly lower latency and is able to execute significantly more transactions in the same time window on the same hardware.
A major benefit of this transaction coordination work is that synchronous client invocation now has greatly reduced latency. This greatly assists building high velocity applications on application stacks that don’t readily enable an asynchronous programming model. PHP web-based applications come immediately to mind.
Realizing that it can be challenging to define all your database queries and transactions ahead of time as is required with stored procedures, we spent some time improving the throughput of ad hoc SQL queries as well. The result is that VoltDB 3.0 can now execute thousands to tens of thousands of ad hoc SQL statements a second.
Easier to Build High Velocity Applications
Ease of development is addressed in two areas in VoltDB 3.0. The first area is application development, the assembling of your high velocity VoltDB application. In this release we’ve eliminated one of the development steps: the creation of a project.xml file.
As part of simplifying the development process, we added a new voltdb compile command. We’ve also enhanced our online-schema support, making more operations, such as index creation and modification, applicable to a running cluster, eliminating more service windows.
The second area is new SQL support. The 3.0 release continues to expand its SQL coverage to now include SQL UNION, LIKE and NOT LIKE. Additionally this release supports a full set of string and numeric column functions, and most importantly, the ability to define indexes using column functions.
Defining indexes using column functions is a must-have feature, particularly when using VoltDB’s new JSON functionality. In the 3.0 release, you can interact with and query on JSON-encoded data using the new field() column function, applying flexible schema to your high-velocity database application. In the coming weeks, look for an upcoming blog post that will detail VoltDB JSON support. Or better yet, download the 3.0 kit. We’ve added a new sample application, /examples/json-sessions, that demonstrates the new capabilities.
Expanded Reach Across Platforms and Applications
VoltDB 3.0 is more cloud-friendly than ever. The version 3.0 transaction coordination architecture was optimized to greatly reducing the communication requirements between nodes in the cluster all while maintaining strict ACID properties. The result is a cloud-friendly database, one that gracefully manages poor network latency between nodes or lower performance on minority nodes in the cluster, as can occur in a cloud environment.
Database manageability can be a challenge, particularly with distributed database systems.
The 3.0 release aims to make this easier and has introduced a new administrative command line, the voltadmin interface. This scriptable command line makes it simpler to perform common administrative operations such as shutting down, saving and restoring your VoltDB cluster.
Integration with Existing Infrastructure
When you are ingesting tens of thousands to hundreds of thousands of transactions per second, at some point at some point you will want to move older data to a system for historical reporting and analytics. In VoltDB, we make moving data to long term storage easy, and call that process Exporting your data. VoltDB 3.0 introduces an enhanced Export architecture that reaches upwards of 20 times the data export performance experienced in previous releases of VoltDB. In addition, the 3.0 release ships with a new JDBC Export connector, enabling export processing to PostgreSQL, Oracle, MySQL and additionally to Netezza and Vertica systems.
There are more options for you to get data into VoltDB with the 3.0 release. Importers are available for Apache log file data as well as comma-separated value (CSV) input files. The 3.0 release addsnew client API drivers, including a high-performance PHP driver, the v1.0 release of our Node.js driver, and a new client driver supporting the Google Go language.
Download VoltDB 3.0
We’re pretty excited about the VoltDB 3.0 release. Our goal is to make building highly scalable transactional database applications easy – to make building applications previously thought impossible, possible. VoltDB 3.0 takes major strides to achieving this vision. You can download VoltDB 3.0 is now: Download VoltDB 3.0
If you have any questions or feedback, the VoltDB engineering team
would love to hear from you. Please submit a post in the new VoltDB
forum, found here: forum.voltdb.com