Performance Guide

Documentation

VoltDB Home » Documentation » Performance Guide

Performance Guide

V4.4.1

The text and illustrations in this document are licensed under the terms of the GNU Affero General Public License Version 3 as published by the Free Software Foundation. See the GNU Affero General Public License (http://www.gnu.org/licenses/) for more details.

Many of the core VoltDB database features described herein are part of the VoltDB Community Edition, which is licensed under the GNU Affero Public License 3 as published by the Free Software Foundation. Other features are specific to the VoltDB Enterprise Edition, which is distributed by VoltDB, Inc. under a commercial license. Your rights to access and use VoltDB features described herein are defined by the license you received when you acquired the software.

Abstract

This book explains how to optimize the performance of applications using VoltDB.


Table of Contents

Preface
1. Organization of this Manual
2. Other Resources
1. Introduction
1.1. What Affects Performance?
1.2. How to Use This Book
2. Hello, World! Revisited
2.1. Optimizing your Application for VoltDB
2.2. Applying Hello World to a Practical Problem
2.3. Partitioned vs. Replicated Tables
2.3.1. Defining the Partitioning Column
2.3.2. Creating the Stored Procedures
2.4. Using Asynchronous Stored Procedure Calls
2.4.1. Understanding Asynchronous Programming
2.4.2. The Callback Procedure
2.4.3. Making an Asynchronous Procedure Call
2.5. Connecting to all Servers
2.6. Putting it All Together
2.7. Next Steps
3. Understanding VoltDB Execution Plans
3.1. How VoltDB Selects Execution Plans for Individual SQL Statements
3.2. Understanding VoltDB Execution Plans
3.3. Reading the Execution Plan and Optimizing Your SQL Statements
3.3.1. Evaluating the Use of Indexes
3.3.2. Evaluating the Table Order for Joins
4. Creating Flexible Schemas With JSON
4.1. Using JSON Data Structures as VoltDB Content
4.2. Querying JSON Data in VoltDB
4.3. Indexing JSON Fields
4.4. Summary: Considerations When Using JSON in VoltDB
5. Understanding VoltDB Memory Usage
5.1. How VoltDB Uses Memory
5.2. Actions that Impact Memory Usage
5.3. How VoltDB Manages Memory
5.4. How Memory is Allocated and Deallocated
5.5. Controlling How Memory is Allocated
5.6. Understanding Memory Usage for Specific Applications
6. Managing Time
6.1. The Importance of Time
6.2. Using NTP to Manage Time
6.2.1. Basic Configuration
6.2.2. Troubleshooting Issues with Time
6.2.3. Correcting Common Problems with Time
6.2.4. Example NTP Configuration
6.3. Configuring NTP in a Hosted, Virtual, or Cloud Environment
6.3.1. Considerations for Hosted Environments
6.3.2. Considerations for Virtual and Cloud Environments

List of Examples

6.1. Custom NTP Configuration File
>