VoltDB

VoltDB is an in-memory database designed by Michael Stonebraker (who earlier designed Ingres and PostgreSQL), Sam Madden, and Daniel Abadi. It is an ACID-compliant RDBMS that uses a shared nothing architecture. It includes both enterprise and community editions. The community edition is licensed under the GNU Affero General Public License.

VoltDB
Developer(s)VoltDB Inc.
Stable release
9.0 / April 11, 2019 (2019-04-11)
Repository
Written inJava, C++
Operating systemLinux, macOS
PlatformJava
TypeRDBMS
LicenseGNU Affero General Public License v3, VoltDB Proprietary License
Websitevoltdb.com

Architecture

VoltDB is a NewSQL relational database that supports SQL access from within pre-compiled Java stored procedures. The unit of transaction is the stored procedure, written in Java interspersed with SQL.

VoltDB relies on horizontal partitioning down to the individual hardware thread to scale, k-safety (synchronous replication) to provide high availability, and a combination of continuous snapshots and command logging for durability (crash recovery).

VoltDB is based on H-Store. It uses a shared-nothing architecture to scale. Data and the processing associated with it are distributed across the CPU cores within the servers composing a single VoltDB cluster. By extending its shared-nothing foundation to the per-core level, VoltDB scales with the increasing core-per-CPU counts on multi-core servers.

By making stored procedures the unit of transaction and executing them at the partition containing the necessary data, it is possible to eliminate round trip messaging between SQL statements. Stored procedures are executed serially and to completion in a single thread without locking or latching, similar to the LMAX architecture.[1] Because data is in memory and local to the partition, a stored procedure can execute in microseconds. VoltDB's stored procedure initiation scheme allows all nodes to initiate stored procedures while avoiding a single serializable global order.[2]

VoltDB is ACID compliant. Data is written to durable storage. Durability is ensured by continuous snapshots; asynchronous command logging, which creates both snapshots and a log of transactions between snapshots; and synchronous command logging, which logs transactions after the transaction completes and before it is committed to the database. This ensures that no transactions are committed that are not logged and that no transactions are lost.

Applications must be designed such that all the data altered by a single stored procedure is stored on the same partition.

History

VoltDB v5.0 introduced a database monitoring and management tool, the VoltDB Management Center (VMC for short). VMC provides browser-based one-stop monitoring and configuration management of the VoltDB database, including graphs for cluster throughput and latency as well as CPU and memory usage for the current server.

VoltDB version 5.1, released in March 2015, introduce Database Replication functionality, removing any single point of failure. DR provides simultaneous, parallel replication of multiple partitions and binary logs of transaction results, saving the replica from having to replay the transaction.

gollark: Especially for strings.
gollark: Doubly linked lists are not acceptable.
gollark: Hmm, what if an infinite memory device with some sort of low-end-microcontroller-grade processor hooked up, connected to the infinite processing and 1KiB of memory thing, over some sort of relatively high-latency link?
gollark: You can't solve the halting problem because it can't run turing machines because 1KiB of RAM.
gollark: The cube will explode if you try that.

See also

References

  1. "The LMAX Architecture". martinfowler.com. Retrieved 2019-04-07.
  2. "DB Developer Central". VoltDB. Retrieved 2019-04-07.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.