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][04][06][07]
- Source Code
- https://github.com/VoltDB/voltdb[02]
- Tech Docs
- https://docs.voltdb.com[03]
- Developer
- Country of Origin
- US
- Project Type
- Commercial
- Operating System
- Linux
- Licenses
- GPL v3, Proprietary, VoltDB Proprietary License
- Wikipedia
- https://en.wikipedia.org/wiki/VoltDB[04]
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][04][06][07]
History[04][08]
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 original source code was removed from GitHub is no longer available. The project is no longer considered open-source.
Checkpoints[09]
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[06][07][10]
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.
Isolation Levels[06][07][10]
VoltDB supports serializable isolation level with ACID guarantee. The deterministic ordering of transactions is achieved by controllers at each data partition.
Joins[15][16]
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[17]
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 Interface[18][11][19]
Apart from supporting most of the standard SQL statements, VoltDB also allows the user to define pre-compiled stored procedures.
Storage Architecture[09]
VoltDB is designed to be an in-memory relational DBMS. Its data persistence is achieved by snapshots stored on disk.
Stored Procedures[18][06]
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[21][22]
VoltDB runs on a sharded DBMS cluster. Data partitioning and replication is done automatically across the cluster
Views[23]
Views in VoltDB are materialized to improve read speed, and all updates to the original table will have a performance impact.
Citations
25 sources- Volt Active Data | Real-Time Decisioning Platform voltactivedata.com
- https://github.com/VoltDB/voltdb github.com
- Volt Active Data Documentation voltdb.com
- VoltDB - Wikipedia wikipedia.org
- https://twitter.com/VoltDB twitter.com
- https://www.semanticscholar.org/paper/The-VoltDB-Main-Memory-DBMS-Stonebraker-Weisberg/e857a9909670b52184da9877efa207fbe2f99bcf?p2df= semanticscholar.org
- What's Really New with NewSQL? cmu.edu
- H-Store: Next Generation OLTP Database Research brown.edu
- Chapter 14. Saving & Restoring a VoltDB Database voltdb.com
- https://www.voltactivedata.com/blog/2016/02/acid-how-to-screw-it-up voltactivedata.com
- Using VoltDB voltdb.com
- https://forum.voltdb.com/forum/voltdb-discussions/other/805-triggers-and-foreign-key-constraints voltdb.com
- CREATE TABLE voltdb.com
- CREATE INDEX voltdb.com
- Guide to Performance and Customization voltdb.com
- SELECT voltdb.com
- Chapter 15. Command Logging and Recovery voltdb.com
- Part 5: Stored Procedures voltdb.com
- https://docs.voltdb.com/UsingVoltDB/DesignProcAnatomy.php voltdb.com
- 1.3. How VoltDB Works voltdb.com
- https://www.voltactivedata.com/wp-content/uploads/2017/03/hv-white-paper-voltdb-technical-overview.pdf voltactivedata.com
- VoltDB System Properties db-engines.com
- CREATE VIEW voltdb.com
- HPE Newsroom | HPE hpe.com
- On the Radar: VoltDB, Just the Latest Database Company from Mike Stonebraker - Innovation Economy - Boston.com boston.com