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
- Project Types
- Commercial, Open Source
- Licenses
- GPL v3, VoltDB Proprietary License
- Wikipedia
- https://en.wikipedia.org/wiki/VoltDB[03]
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.
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 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.
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- Volt Active Data | Real-Time Decisioning Platform voltactivedata.com
- https://github.com/VoltDB/voltdb github.com
- VoltDB - Wikipedia wikipedia.org
- 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
- ACID Mistakes to Avoid in Database System Design 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