Introduced a new open database management system - VoltDB, focused on real-time transaction processing (OLTP). VoltDB was designed and developed under the direction of Michael Stounbraker, one of the founders of the Ingres and PostgreSQL projects.
VoltDB outperforms traditional OLTP DBMS in single-server configuration by 45 times, supports execution of queries in SQL and guarantees transactional data integrity (ACID, transaction atomicity and isolation). The essence of the VoltDB architecture is in the combination of storing all data in memory with the concept of distributed organization and database partitioning (partitioning). To save data to disk, the concept of snapshots is used, reflecting a slice of data relevant at the moment of snapshot creation. Data handling is performed through stored procedures in the Java language, copies of which are attached to each of the sections (ODBC / JDBC and direct execution of SQL statements for the entire database is not supported). When executing a query involving several sections, the stored procedure is called in each of the required sections and then the results are aggregated.
The DBMS is distributed in two versions: commercial, with full support, and the free Community Edition. Source code is licensed under the GPL. ')
The main elements of the architecture
All data is constantly kept in RAM, which ensures maximum throughput and eliminates the need for buffering.
VoltDB distributes data and its SQL handlers to the nodes, each of which is tied to its own processor core.
Each single-threaded partition works offline, eliminating the need for locking and latching operations.
Data is automatically replicated within the cluster, which allows for high availability and eliminates the need for logging.
VoltDB performance increases almost linearly with the addition of additional servers to the cluster.
Performance Measurement Results
VoltDB processed 53 thousand transactions per second on a single server, while other DBMSs on the same equipment could perform only 1155 transactions. With an increase in the number of servers to 12, the cluster allowed to complete 560 thousand transactions per second.
Testing online gaming on a 12-node cluster demonstrated a performance of 1.3 million transactions per second.