VoltDB is a commercial in-memory DBMS that is scalable and ACID-compliant. VoltDB is designed to be a NewSQL relational database to work with mainly OLTP queries. It is designed to be a distributed database with sharding and data replication. It has both a commercial version and an open-source community version.
VoltDB originated from H-Store, a research project from Brown U and MIT under Michael Stonebraker, Samuel Madden, Andy Pavlo, etc. In 2009, it started as a spinoff in Boston, MA.
The snapshot creation could either block all the other transactions or be done in a non-blocking way (e.g. Copy-On-Write).
Deterministic Concurrency Control
VoltDB schedules transactions deterministically on each partition of the data in the cluster. For transactions that span across partitions, a global serial order controller is responsible for determining the execution order. MVCC mode is only used when taking snapshots.
VoltDB is based on the standard relational model.
Apart from the default tree index, VoltDB also supports hash index.
VoltDB supports serializable isolation level with ACID guarantee. The deterministic ordering of transactions is achieved by controllers at each data partition.
VoltDB supports transaction-level logging for all the stored procedures that are invoked. By command logging, the amount of memory overhead is minimized since a single stored procedure invocation could contain arbitrary number of SQL statements. Only logs after the latest snapshot are kept, and the logs are flushed to the disk at a regular interval. This feature is only available in the enterprise edition.
Apart from supporting most of the standard SQL statements, VoltDB also allows the user to define pre-compiled stored procedures.
VoltDB is designed to be an in-memory relational DBMS. Its data persistence is achieved by snapshots stored on disk.
N-ary Storage Model (Row/Record)
VoltDB is only designed for fast OLTP queries.
The stored procedure in VoltDB allows the user to define a transaction once and to be invoked later with given parameters. Stored procedures are pre-compiled to reduce execution time. Temporary queries are automatically comipled and executed as a stored procedure. VoltDB supports stored procedures written in SQL or Java.
VoltDB runs on a sharded DBMS cluster. Data partitioning and replication is done automatically across the cluster
Views in VoltDB are materialized to improve read speed, and all updates to the original table will have a performance impact.
C++, Erlang, Go, Java, PHP, Python
GPL v3, VoltDB Proprietary License