VoltDB
Developer(s) | VoltDB Inc. |
---|---|
Stable release |
6.0 / January 27, 2016
|
Repository | github |
Written in | Java, C++ |
Operating system | Linux, Mac OS X |
Platform | Java |
Type | RDBMS |
License | GNU Affero General Public License v3, VoltDB Proprietary License |
Website | voltdb |
VoltDB is an in-memory database designed by Michael Stonebraker (who was involved in Ingres and POSTGRES), Sam Madden, and Daniel Abadi. It is an ACID-compliant RDBMS which uses a shared nothing architecture. It includes both enterprise and community editions. The community edition is licensed under the GNU Affero General Public License.
Architecture[edit]
VoltDB is a scale-out NewSQL relational database that supports SQL access from within pre-compiled Java stored procedures. The unit of transaction is the stored procedure, which is 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 uses a shared-nothing architecture to achieve database parallelism. Data and the processing associated with it are distributed among all 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 modern commodity 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 any 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 ensuring that there is a single serializable global order.[2]
VoltDB is fully ACID compliant. Data is durable to disk. Durability is ensured by continuous snapshots; asynchronous command logging, which creates both snapshots and a log of all transactions between snapshots; and synchronous command logging, which writes transactions to the log after the transaction completes and before it is committed to the database. This ensures no transactions are committed that are not logged and no transactions are lost.
VoltDB version 5.1, released in March 2015, introduces new Database Replication functionality, removing any single point of failure. DR now provides simultaneous, parallel replication of multiple partitions and use of binary logs of transaction results, saving the replica from having to replay the transaction. VoltDB v5.0 introduced a new 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.
See also[edit]
References[edit]
External links[edit]
- Official website
- VoltDB at Open Hub
- Curt Monash (25 May 2010). "VoltDB finally launches". DBMS 2. Retrieved 2011-07-09.
- "VoltDB Announces Version 5.0". VoltDB, Inc. 28 January 2015. Retrieved 2015-03-29.
- "Michael Stonebraker, VoltDB Co-Founder and Real-time Data Pioneer, Wins ACM 2014 A.M. Turing Award". VoltDB, Inc. 26 March 2015. Retrieved 2015-03-29.
- "VoltDB Aims for Fast Big Data Development". ADTmag. 29 January 2015. Retrieved 2015-03-29.