Login/Register | Contact Us | 1+ 978-528-4660

Using VoltDB

Using VoltDB

Table of Contents

Preface
1. Overview
1.1. What is VoltDB?
1.2. Who Should Use VoltDB
1.3. How VoltDB Works
1.3.1. Partitioning
1.3.2. Serialized (Single-Threaded) Processing
1.3.3. Partitioned vs. Replicated Tables
1.3.4. Ease of Scaling to Meet Application Needs
2. Installing VoltDB
2.1. Operating System and Software Requirements
2.2. Installing VoltDB
2.2.1. Upgrading an Existing VoltDB Installation
2.2.2. Building a New VoltDB Distribution Kit
2.3. Setting Up Your Environment
2.4. What is Included in the VoltDB Distribution
2.5. VoltDB in Action: Running the Sample Applications
3. Designing Your VoltDB Application
3.1. Designing the Database
3.1.1. Partitioning Database Tables
3.1.2. Replicating Lookup Tables
3.2. Designing the Data Access (Stored Procedures)
3.2.1. Writing VoltDB Stored Procedures
3.2.2. VoltDB Stored Procedures and Determinism
3.2.3. The Anatomy of a VoltDB Stored Procedure
3.2.4. Writing Single-Partitioned Stored Procedures
3.3. Designing the Application Logic
3.3.1. Connecting to the VoltDB Database
3.3.2. Invoking Stored Procedures
3.3.3. Invoking Stored Procedures Asynchronously
3.3.4. Closing the Connection
3.4. Handling Errors
3.4.1. Interpreting Execution Errors
3.4.2. Handling Timeouts
3.4.3. Interpreting Other Errors
4. Simplifying Application Development
4.1. Default Procedures for Partitioned Tables
4.2. Shortcut for Defining Simple Stored Procedures
4.3. Verifying Expected Query Results
5. Building Your VoltDB Application
5.1. Compiling the Client Application and Stored Procedures
5.2. Creating the Project Definition File
5.3. Building the Runtime Catalog
6. Running Your VoltDB Application
6.1. Defining the Cluster Configuration
6.1.1. Determining How Many Partitions to Use
6.1.2. Configuring Paths for Runtime Features
6.1.3. Verifying your Hardware Configuration
6.2. Starting a VoltDB Database for the First Time
6.2.1. Simplifying Startup on a Cluster
6.2.2. How VoltDB Database Startup Works
6.3. Starting VoltDB Client Applications
6.4. Shutting Down a VoltDB Database
6.5. Stopping and Restarting a VoltDB Database
6.5.1. Save and Restore
6.5.2. Command Logging and Recovery
6.6. Modes of Operation
6.6.1. Admin Mode
6.6.2. Starting the Database in Admin Mode
7. Updating Your VoltDB Application
7.1. Planning Your Application Updates
7.2. Updating the Stored Procedures
7.2.1. Validating the Updated Catalog
7.2.2. Managing the Update Process
7.3. Updating the Database Schema
7.4. Updating the Hardware Configuration
8. Security
8.1. How Security Works in VoltDB
8.2. Enabling Authentication and Authorization
8.3. Defining Users and Groups
8.4. Assigning Access to Stored Procedures
8.5. Allowing Access to System Procedures and Ad Hoc Queries
9. Saving & Restoring a VoltDB Database
9.1. Performing a Manual Save and Restore of a VoltDB Cluster
9.1.1. How to Save the Contents of a VoltDB Database
9.1.2. How to Restore the Contents of a VoltDB Database
9.1.3. Changing the Database Schema or Cluster Configuration Using Save and Restore
9.2. Scheduling Automated Snapshots
9.3. Managing Snapshots
9.4. Special Notes Concerning Save and Restore
10. Command Logging and Recovery
10.1. How Command Logging Works
10.2. Enabling Command Logging
10.3. Configuring Command Logging for Optimal Performance
10.3.1. Log Size
10.3.2. Log Frequency
10.3.3. Synchronous vs. Asynchronous Logging
10.3.4. Hardware Considerations
10.4. Recovery Options in the VoltDB Community Edition
11. Availability
11.1. How K-Safety Works
11.2. Enabling K-Safety
11.2.1. What Happens When You Enable K-Safety
11.2.2. Calculating the Appropriate Number of Nodes for K-Safety
11.3. Recovering from System Failures
11.3.1. What Happens When a Node Rejoins the Cluster
11.3.2. Where and When Recovery May Fail
11.4. Avoiding Network Partitions
11.4.1. K-Safety and Network Partitions
11.4.2. Using Network Fault Protection
12. Database Replication
12.1. How Database Replication Works
12.1.1. Starting Replication
12.1.2. Replication and Existing Databases
12.1.3. Database Replication and Disaster Recovery
12.1.4. Database Replication and Completeness
12.1.5. Database Replication and Read-only Clients
12.2. Database Replication in Action
12.2.1. Starting Replication
12.2.2. Stopping Replication
12.2.3. Promoting the Replica When the Master Becomes Unavailable
12.2.4. Managing Database Replication
12.3. Using the Sample Applications to Demonstrate Replication
12.3.1. Replicating the Voter Sample Using the Enterprise Manager
12.3.2. Replicating the Voter Sample Using the Command Line
13. Exporting Live Data
13.1. Understanding Export
13.2. Planning your Export Strategy
13.3. Identifying Export Tables in the Project Definition File
13.4. Configuring Export in the Deployment File
13.5. How Export Works
13.5.1. Export Overflow
13.5.2. Persistence Across Database Sessions
13.6. Using the Export Clients
13.6.1. How the Export Clients Work
13.7. The Export-to-File Client
13.7.1. Understanding the Export-to-File Client Output
13.7.2. The Export-to-File Client Command Line
13.8. The Export-to-Hadoop Client (Enterprise Edition Only)
13.8.1. The Export-to-Hadoop Client Command Line
14. Logging and Analyzing Activity in a VoltDB Database
14.1. Introduction to Logging
14.2. Creating the Logging Configuration File
14.3. Enabling Logging for VoltDB
14.4. Changing the Configuration on the Fly
15. Using VoltDB with Other Programming Languages
15.1. C++ Client Interface
15.1.1. Writing VoltDB Client Applications in C++
15.1.2. Creating a Connection to the Database Cluster
15.1.3. Invoking Stored Procedures
15.1.4. Invoking Stored Procedures Asynchronously
15.1.5. Interpreting the Results
15.2. JSON HTTP Interface
15.2.1. How the JSON Interface Works
15.2.2. Using the JSON Interface from Client Applications
15.2.3. How Parameters Are Interpreted
15.2.4. Interpreting the JSON Results
15.2.5. Error Handling using the JSON Interface
15.3. JDBC Interface
15.3.1. Using JDBC to Connect to a VoltDB Database
15.3.2. Using JDBC to Query a VoltDB Database
A. Supported SQL DDL Statements
CREATE INDEX — Creates an index for faster access to a table.
CREATE TABLE — Creates a table in the database.
CREATE VIEW — Creates a view into a table, used to optimize access to specific columns within a table.
B. Supported SQL Statements
DELETE — Deletes one or more records from the database.
INSERT — creates a new row in the database, using the specified values for the columns.
SELECT — fetches the specified rows and columns from the database.
UPDATE — updates the values within the specified columns and rows of the database.
C. Project Definition File (project.xml)
C.1. Understanding XML Syntax
C.2. The Structure of the Project Definition File
D. Configuration File (deployment.xml)
D.1. The Structure of the Configuration File
E. System Procedures
@AdHoc — Executes an SQL statement specified at runtime.
@Pause — Initiates admin mode on the cluster.
@Quiesce — Waits for all queued export data to be written to the connector.
@Resume — Returns a paused database to normal operating mode.
@Shutdown — Shuts down the database.
@SnapshotDelete — Deletes one or more snapshots.
@SnapshotRestore — Restores a database from disk.
@SnapshotSave — Saves the current database contents to disk.
@SnapshotScan — Lists information about existing snapshots in a given directory path.
@SnapshotStatus — Lists information about the most recent snapshots created from the current database.
@Statistics — Returns statistics about the usage of the VoltDB database.
@SystemCatalog — Returns metadata about the database schema
@SystemInformation — Returns configuration information about VoltDB and the individual nodes of the database cluster
@UpdateApplicationCatalog — Reconfigures the database by replacing the application catalog currently in use.
@UpdateLogging — Changes the logging configuration for a running database.

copyright 2012 VoltDB, Inc.