HOME

TheInfoList



OR:

Volt Active Data (formerly VoltDB) is an
in-memory database An in-memory database (IMDB, or main memory database system (MMDB) or memory resident database) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems that e ...
designed by
Michael Stonebraker Michael Ralph Stonebraker (born October 11, 1943) is a computer scientist specializing in database systems. Through a series of academic prototypes and commercial startups, Stonebraker's research and products are central to many relational databa ...
,
Sam Madden Samuel R. Madden (born August 4, 1976) is an American computer scientist specializing in database management systems. He is currently a professor of computer science at the Massachusetts Institute of Technology. Career Madden was born and raise ...
, and Daniel Abadi. It is an
ACID In computer science, ACID ( atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequ ...
-compliant
RDBMS A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relation ...
that uses a
shared-nothing architecture A shared-nothing architecture (SN) is a distributed computing architecture in which each update request is satisfied by a single node (processor/memory/storage unit) in a computer cluster. The intent is to eliminate contention among nodes. Nodes do ...
, and is derived from work done by Stonebraker on OLTP system performance and optimization. It is available in both enterprise and community editions. The community edition is licensed under the
GNU Affero General Public License The GNU Affero General Public License (GNU AGPL) is a free, copyleft license published by the Free Software Foundation in November 2007, and based on the GNU General Public License, version 3 and the Affero General Public License. The Free So ...
.


Architecture

VoltDB is a
NewSQL NewSQL is a class of relational database management systems that seek to provide the scalability of NoSQL systems for online transaction processing (OLTP) workloads while maintaining the ACID guarantees of a traditional database system. Many e ...
OLTP In online transaction processing (OLTP), information systems typically facilitate and manage transaction-oriented applications. This is contrasted with online analytical processing. The term "transaction" can have two different meanings, both of wh ...
relational database A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
that supports SQL access from within pre-compiled
Java stored procedure SQL/JRT, or ''SQL Routines and Types for the Java Programming Language'', is an extension to the SQL standard first published as ISO/IEC 9075-13:2002 (part 13 of SQL:1999). SQL/JRT specifies the ability to invoke static Java methods as routines fr ...
s. While direct SQL access is supported, the most efficient form of interaction is using stored procedure calls, as it involves fewer network trips. Stored procedures are written in Java by extending a class calle
VoltProcedure
and implementing a ‘run()’ method that includes both SQL statements and supporting Java logic. Internally data is managed by a C++ core to avoid garbage collection issues. VoltDB relies on horizontal partitioning down to the individual hardware thread to scale, k-safety (
synchronous replication Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. Terminology Replication in comp ...
) to provide
high availability High availability (HA) is a characteristic of a system which aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period. Modernization has resulted in an increased reliance on these systems. Fo ...
, and a combination of continuous
snapshot Snapshot, snapshots or snap shot may refer to: * Snapshot (photography), a photograph taken without preparation Computing * Snapshot (computer storage), the state of a system at a particular point in time * Snapshot (file format) or SNP, a file ...
s and command logging for
durability Durability is the ability of a physical product to remain functional, without requiring excessive maintenance or repair, when faced with the challenges of normal operation over its design lifetime. There are several measures of durability in use, ...
(crash recovery). VoltDB is based on
H-Store H-Store is an experimental database management system (DBMS). It was designed for online transaction processing applications. H-Store was developed by a team at Brown University, Carnegie Mellon University, the Massachusetts Institute of Technolog ...
. 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. 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. 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.


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, introduced
database replication Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. Terminology Replication in comp ...
(DR) 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. V6.0 introduced geospatial datatypes V6.1 added streams, which can be inserted into, with support for aggregation in materialized views on the streaming data,. V6.6 added support for XDCR running clusters between mixed versions of Volt and of mixed sizes and configurations. V7.1 , released in March 2017 introduced support for TLS encryption for client networking. V7.5 released July 28, 2017 introduced the kafkaloader, for consuming streaming events from Kafka directly into a database table or into a stored procedure for processing. V7.6 (August 28, 2017) introduced User-Defined SQL Functions, allowing customers to write custom functions in Java and make them callable from a SQL statement. V8.0 (February 6, 2018) introduced TLS encryption for networking between clusters using DR and XDCR and for intra-cluster communication. V8.2 (July 12, 2018) introduced the TTL feature that allows applications to define a “time to live” on timestamp column in a table. Once the expiration time is hit, an internal process cleans up the records from the database. V8.4 (December 29, 2018) introduced Long-Term Supported versions to Volt customers. This version increases the support from one year to three years, allowing customers to stay on a version and receive critical updates for stability, security and correctness. V9.0 (April 11, 2019) introduced new streaming functionality, including migration of data to a stream upon expiration and change-data capture. V9.3 (May 1, 2020), a Long-Term Supported (LTS) release, introduced Scheduled Tasks, a way to automate repetitive tasks and procedure calls from within Volt. Schedule Tasks has an easy to use interface for calling pre-defined procedures and can also be fully customized in Java to create more complex schedules. V10.0 (August, 2020) introduced a Volt Operator for Kubernetes and Helm Charts offering a complete solution for running VoltDB databases in a Kubernetes cloud environment. In addition V10.0 provided a Prometheus agent for collection and graphing of metrics. V10.2 (January 2021) introduced VoltDB Topics to provide the intelligent streaming of VoltDB's existing import and export capabilities, but with the flexibility of Kafka-like streams. Topics allow for both inbound and outbound streaming to multiple client producers and consumers. They allow for intelligent processing and manipulation of the data as it passes through the pipeline. V10.2 is a LTS release. V11.0 (April 21, 2022) introduces connectivity to DataDog, support for
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
17, compatibility with
Kubernetes Kubernetes (, commonly stylized as K8s) is an open-source container orchestration system for automating software deployment, scaling, and management. Google originally designed Kubernetes, but the Cloud Native Computing Foundation now maintains ...
22.0 and priority transactions. In February 2022 the product was renamed to "Volt Active Data".


See also

*
Comparison of database tools The following tables compare general and technical information for a number of available database administrator tools. Please see individual product articles for further information. This article is neither all-inclusive nor necessarily up to dat ...
*
Comparison of relational database management systems The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are b ...


References


External links

* * * * * *{{cite web , url = http://adtmag.com/articles/2015/01/29/voltdb-upgrade.aspx , title = VoltDB Aims for Fast Big Data Development , date = 29 January 2015 , publisher = ADTmag , access-date = 2015-03-29 Free database management systems NewSQL Relational database management software for Linux Software using the GNU AGPL license