VoltDB: Difference between revisions
copy-edit lede |
add initial release date to infobox |
||
Line 8: | Line 8: | ||
| author = |
| author = |
||
| developer = VoltDB Inc. |
| developer = VoltDB Inc. |
||
| released = |
| released = {{Start date|2010|05|25}} |
||
| discontinued = |
| discontinued = |
||
| latest release version = 10.1 |
| latest release version = 10.1 |
Revision as of 01:06, 9 December 2021
Developer(s) | VoltDB Inc. |
---|---|
Initial release | May 25, 2010 |
Stable release | 10.1
/ October 30, 2020 |
Repository | |
Written in | Java, C++ |
Operating system | Linux, macOS |
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, Sam Madden, and Daniel Abadi.
It is an ACID-compliant RDBMS that uses a shared-nothing architecture, and is derived from work done by Stonebraker on OLTP system performance[1] and optimization.[2]
It is available in both enterprise and community editions. The community edition is licensed under the GNU Affero General Public License.
Architecture
VoltDB is a NewSQL OLTP[3] relational database that supports SQL access from within pre-compiled Java stored procedures.
While direct SQL access is supported,[4] the most efficient form of interaction is using stored procedure calls,[5] as it involves fewer network trips. Stored procedures are written in Java by extending a class called 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.[6]
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.[7] 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.[8]
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 (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.
See also
References
- ^ "OLTP Through the Looking Glass, and What We Found There" (PDF). nms.csail.mit.edu.
- ^ "The End of an Architectural Era (It's Time for a Complete Rewrite)" (PDF). nms.csail.mit.edu.
- ^ "High Performance RDBMS for Fast Data Applications Requiring Smart Streaming with Transactions" (PDF). voltdb.com.
{{cite web}}
: line feed character in|title=
at position 50 (help) - ^ "JDBC Interface". voltdb.com.
- ^ "Designing Stored Procedures to Access the Database". voltdb.com.
- ^ "Debunking Myths About the VoltDB In-Memory Database - DZone Java". dzone.com. Retrieved 2020-11-13.
- ^ "The LMAX Architecture". martinfowler.com. Retrieved 2019-04-07.
- ^ "DB Developer Central". VoltDB. Retrieved 2019-04-07.
External links
- 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.