DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

VoltDB


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.[01][03][04][05]

Source Code
https://github.com/VoltDB/voltdb[02]
Developer
Country of Origin
US
Start Year
2009 [22][23]
Project Types
Commercial, Open Source
Written in
C++, Java
Supported Languages
C++, Erlang, Go, Java, PHP, Python
Derived From
H-Store, HyperSQL

Database Entry

VoltDB


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.[01][03][04][05]

History[03][06]


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.

Checkpoints[07]


The snapshot creation could either block all the other transactions or be done in a non-blocking way (e.g. Copy-On-Write).

Concurrency Control[04][05][08]


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.

Data Model[09]


VoltDB is based on the standard relational model.

Foreign Keys[10][11]


FOREIGN KEY and CHECK are not currently supported.

Indexes[12]


Apart from the default tree index, VoltDB also supports hash index.

Isolation Levels[04][05][08]


VoltDB supports serializable isolation level with ACID guarantee. The deterministic ordering of transactions is achieved by controllers at each data partition.

Joins[13][14]


Table joins are only supported if the result is smaller than 50MB. The join ordering must be specified if the query joins more than 6 tables.

Logging[15]


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.

Query Compilation[16][04]


Query Execution


Query Interface[16][09][17]


Apart from supporting most of the standard SQL statements, VoltDB also allows the user to define pre-compiled stored procedures.

Storage Architecture[07]


VoltDB is designed to be an in-memory relational DBMS. Its data persistence is achieved by snapshots stored on disk.

Storage Model[18]


VoltDB is only designed for fast OLTP queries.

Stored Procedures[16][04]


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.

System Architecture[19][20]


VoltDB runs on a sharded DBMS cluster. Data partitioning and replication is done automatically across the cluster

Views[21]


Views in VoltDB are materialized to improve read speed, and all updates to the original table will have a performance impact.

Citations

23 sources
  1. Volt Active Data | Real-Time Decisioning Platform voltactivedata.com
  2. https://github.com/VoltDB/voltdb github.com Dead — Check Archive
  3. VoltDB - Wikipedia wikipedia.org
  4. https://www.semanticscholar.org/paper/The-VoltDB-Main-Memory-DBMS-Stonebraker-Weisberg/e857a9909670b52184da9877efa207fbe2f99bcf?p2df= semanticscholar.org
  5. What's Really New with NewSQL? cmu.edu
  6. H-Store: Next Generation OLTP Database Research brown.edu
  7. Chapter 14. Saving & Restoring a VoltDB Database voltdb.com
  8. ACID Mistakes to Avoid in Database System Design voltactivedata.com
  9. Using VoltDB voltdb.com Dead — Check Archive
  10. https://forum.voltdb.com/forum/voltdb-discussions/other/805-triggers-and-foreign-key-constraints voltdb.com Dead — Check Archive
  11. CREATE TABLE voltdb.com
  12. CREATE INDEX voltdb.com
  13. Guide to Performance and Customization voltdb.com
  14. SELECT voltdb.com
  15. Chapter 15. Command Logging and Recovery voltdb.com
  16. Part 5: Stored Procedures voltdb.com
  17. https://docs.voltdb.com/UsingVoltDB/DesignProcAnatomy.php voltdb.com
  18. 1.3. How VoltDB Works voltdb.com
  19. https://www.voltactivedata.com/wp-content/uploads/2017/03/hv-white-paper-voltdb-technical-overview.pdf voltactivedata.com
  20. VoltDB System Properties db-engines.com
  21. CREATE VIEW voltdb.com
  22. HPE Newsroom | HPE hpe.com
  23. On the Radar: VoltDB, Just the Latest Database Company from Mike Stonebraker - Innovation Economy - Boston.com boston.com
Revision #10