Administrator's Guide


VoltDB Home » Documentation » Administrator's Guide

Administrator's Guide


This document is published under copyright by Volt Active Data, Inc. All Rights Reserved.

The software described in this document is furnished under a license by Volt Active Data, Inc. Your rights to access and use VoltDB features are defined by the license you received when you acquired the software.

The VoltDB client libraries, for accessing VoltDB databases programmatically, are licensed separately under the MIT license.

Volt Active Data, VoltDB, and Active(N) are registered trademarks of Volt Active Data, Inc.

VoltDB software is protected by U.S. Patent Nos. 9,600,514, 9,639,571, 10,067,999, 10,176,240, and 10,268,707. Other patents pending.


This books explains how to create and manage Volt Active Data databases and the clusters that run them.

Table of Contents

1. Structure of This Book
2. Related Documents
1. Managing Volt Active Data Databases
1.1. Getting Started
1.2. Understanding the VoltDB Utilities
1.3. Management Tasks
2. Preparing the Servers
2.1. Server Checklist
2.2. Install Required Software
2.3. Configure Memory Management
2.3.1. Disable Swapping
2.3.2. Disable Transparent Huge Pages
2.3.3. Enable Virtual Memory Mapping and Overcommit
2.4. Turn off TCP Segmentation
2.5. Configure Time Services
2.6. Increase Resource Limits
2.7. Configure the Network
2.8. Assign Network Ports
2.9. Eliminating Server Process Latency
3. Starting and Stopping the Database
3.1. Configuring the Cluster and Database
3.2. Initializing the Database Root Directory
3.3. Starting the Database
3.4. Loading the Database Definition
3.4.1. Preloading the Schema and Classes When You Initialize the Database
3.4.2. Loading the Schema and Classes After the Database Starts
3.5. Stopping the Database
3.6. Restarting the Database
3.7. Starting and Stopping Individual Servers
4. Maintenance and Upgrades
4.1. Backing Up the Database
4.2. Updating the Database Schema
4.2.1. Performing Live Schema Updates
4.2.2. Performing Updates Using Save and Restore
4.3. Upgrading the Cluster
4.3.1. Performing Server Upgrades
4.3.2. Performing Rolling Hardware Upgrades on K-Safe Clusters
4.3.3. Adding Servers to a Running Cluster with Elastic Scaling
4.3.4. Removing Servers from a Running Cluster with Elastic Scaling
4.3.5. Reconfiguring the Cluster During a Maintenance Window
4.4. Upgrading Existing VoltDB Installations
4.4.1. Upgrading the VoltDB Software
4.4.2. Upgrading VoltDB Using Save and Restore
4.4.3. Upgrading Older Versions of VoltDB Manually
4.4.4. Performing an In-Service Upgrade of a Single Cluster
4.4.5. Performing an Online Upgrade Using Multiple XDCR Clusters
4.4.6. Downgrading, or Falling Back to a Previous VoltDB Version
4.5. Updating the VoltDB Software License
5. Monitoring VoltDB Databases
5.1. Monitoring Overall Database Activity
5.1.1. Volt Management Center
5.1.2. System Procedures
5.1.3. SNMP Alerts
5.2. Setting the Database to Read-Only Mode When System Resources Run Low
5.2.1. Monitoring Memory Usage
5.2.2. Monitoring Disk Usage
5.3. Integrating VoltDB with Prometheus
6. Logging and Analyzing Activity in a VoltDB Database
6.1. Introduction to Logging
6.2. Creating the Logging Configuration File
6.3. Changing the Timezone of Log Messages
6.4. Managing VoltDB Log Files
6.5. Enabling Your Custom Log Configuration When Starting VoltDB
6.6. Changing the Configuration on the Fly
7. What to Do When Problems Arise
7.1. Where to Look for Answers
7.2. Handling Errors When Restoring a Database
7.2.1. Logging Constraint Violations
7.2.2. Safe Mode Recovery
7.3. Collecting the Log Files
A. Server Configuration Options
A.1. Server Configuration Options
A.1.1. Network Configuration (DNS)
A.1.2. Time Configuration
A.2. Process Configuration Options
A.2.1. Maximum Heap Size (VOLTDB_HEAPMAX)
A.2.2. Garbage Collector (VOLTDB_GC_OPTS)
A.2.3. Other Java Runtime Options (VOLTDB_OPTS)
A.3. Database Configuration Options
A.3.1. Sites per Host
A.3.2. K-Safety
A.3.3. Network Partition Detection
A.3.4. Automated Snapshots
A.3.5. Import and Export
A.3.6. Command Logging
A.3.7. Heartbeat
A.3.8. Temp Table Size
A.3.9. Query Timeout
A.3.10. Flush Interval
A.3.11. Long-Running Process Warning
A.3.12. Copying Array Parameters
A.3.13. Transaction Prioritization
A.3.14. Clock Skew
A.4. Path Configuration Options
A.4.1. VoltDB Root
A.4.2. Snapshots Path
A.4.3. Export Overflow Path
A.4.4. Command Log Path
A.4.5. Command Log Snapshots Path
A.5. Network Ports
A.5.1. Client Port
A.5.2. Admin Port
A.5.3. Web Interface Port (http)
A.5.4. Internal Server Port
A.5.5. Metrics Port
A.5.6. Replication Port
A.5.7. Topics Port
A.5.8. Zookeeper Port
A.5.9. TLS/SSL Encryption (Including HTTPS)
B. Volt Active Data Metrics
B.1. Database Tables and Indexes
B.2. Transactions, Procedures, and the Planner
B.3. Memory and CPU Usage
B.4. Client Connections and I/O
B.5. High Availability and Durability
B.6. Streaming Data
B.7. User-Defined Tasks
B.8. System and Cluster Status
C. Snapshot Utilities
snapshotconvert — Converts the tables in a VoltDB snapshot into text files.
snapshotverifier — Verifies that the contents of one or more snapshot files are complete and usable.