VoltDB v6.6 is a big release with lots of new features. The team took time to perfect the code, as you’ve come to expect, to ensure everything works out of the box (or download, in this case).
We’re very excited about this feature, which adds to VoltDB’s real-time analytics capabilities. Consider that each table might be the target of an ingestion stream, and you’re now able to compute real-time (continuous queries) over stream joins. See the description of the CREATE VIEW statement in the Using VoltDB manual for details.
The new RANK() Window function determines the rank of a row’s value among the values of similar rows. This feature is very useful for analyzing data across multiple dimensions, including time windows. To use the RANK() window function in the selection list of a SELECT statement, see the example:
SELECT city, population,
RANK() OVER (ORDER BY population) FROM cities…
Check out the description of the SELECT statement in the Using VoltDB manual for details.
The new VoltDB Command Line is a major advance in ease of deployment, process lifecycle management and container and cloud deployment/orchestration. The new VoltDB command line simplifies starting VoltDB database servers. This new CLI replaces the create, recover, rejoin, and add commands with just two commands: init and start.
It is now possible to run different versions of VoltDB on the two clusters used for cross data center replication (XDCR). The main use of this capability is to allow “live” software upgrades of VoltDB by upgrading each cluster in sequence. See the section on “Upgrading VoltDB Software” in the VoltDB Administrator’s Guide for more information.
We’ve added new SQL functions for sine, cosine, tangent, secant, cosecant, and cotangent. The functions are SIN(), COS(), TAN(), SEC(), CSC(), and COT(), and take a floating point value representing an angle measured in radians as input. See the appendix of SQL functions in the Using VoltDB manual for details.
SQL functions that do not require any input arguments, such as NOW() and PI(), can now be specified either with or without the parentheses. Previously, some functions required the parentheses and some did not accept them. Both forms are now allowed. For example, the current timestamp value can be specified as either CURRENT_TIMESTAMP() or CURRENT_TIMESTAMP.