VoltDB is a distributed, in-memory database designed from the ground up to maximize throughput performance on commodity servers. The VoltDB architecture provides many advantages over traditional database products while avoiding the pitfalls of NoSQL solutions:
By partitioning the data and stored procedures, VoltDB can process multiple queries in parallel without sacrificing the consistency or durability of an ACID-compliant database.
By managing all data in memory with a single thread for each partition, VoltDB avoids overhead such as record locking, latching, and device-contention inherent in traditional disk-based databases.
VoltDB databases can scale up to meet new capacity or performance requirements simply by adding more nodes to the cluster.
Partitioning is automated, based on the schema, so there is no need to manually shard or repartition the data when scaling up as with many NoSQL solutions.
Finally, VoltDB Enterprise Edition provides features to ensure durability and high availability through command logging, locally replicating partitions (K-safety), and wide-area database replication.
Each of these features is described, in detail, in the Using VoltDB manual. This book explains how to use these and other features to manage and maintain a VoltDB database cluster from a database administrator's perspective.
To initialize a VoltDB database cluster, you need a deployment file. The deployment file defines:
The physical structure of the cluster — including the number of nodes in the cluster and how many partitions each node manages.
The configuration of individual database features — different elements of the deployment file let you enable and configure various database options including availability, durability, and security.
When using the VoltDB Enterprise Edition, you will also need a license file, often called
license.xml. VoltDB automatically looks for the license file in the user's current working directory,
the home directory, or the
voltdb/ subfolder where VoltDB is installed. If you keep the license file in
a different directory or under a different name, you can use to
--license argument on the
voltdb command to specify the license file location.
Finally, to prepare the database for a specific application, you will need the database schema, including the DDL statements that describe the database's logical structure, and a JAR file containing stored procedure class files. In general, the database schema and stored procedures are produced as part of the database development process, which is described in the Using VoltDB manual.
This book assumes the schema and stored procedures have already been created. The deployment file, on the other hand, defines the run-time configuration of the cluster. Establishing the correct settings for the deployment file and physically managing the database cluster is the duty of the administrators who are responsible for maintaining database operations. This book is written for those individuals and covers the standard procedures associated with database administration.