Author Archive

Home » Articles posted by vdbdev

Creating a custom export connector that runs inside VoltDB


  1. Implement a new export connector.
  2. Compile the connector and place its .class file in VoltDB’s classpath. ($VOLTDB/lib/extension).
  3. Configure the connector in the deployment file.
  4. Run the server.

Implement a new export connector

An export connector, known internally as an ExportClient, receives blocks of row data from a producer within the database.… Read more

Run Everywhere

VoltDB supports single-partition transactions, which as the name implies, run on only
one partition. VoltDB can run as many single partition transactions in parallel as
there are unique partitions. This enables high transaction throughput as well as
high transaction concurrency execution.… Read more

Planned Maintenance Windows

When you need to take the database down for maintenance, this is the recommended approach to do it safely with no data loss using a snapshot.

A snapshot is a point-in-time consistent copy of the entire contents of the database.… Read more

Configuring Export

VoltDB’s export feature connects VoltDB to a downstream OLAP system
so that you can use VoltDB for data correlation, data quality, filtering,
real time enrichment – and pass completed records downstream to your
OLAP / HDFS for historical analytics and archival.… Read more


This is a topic that has come up quite often as to how to use VoltDB client libraries if I use Maven. Although VoltDB is not part of the Maven Central repository, we can work around this by installing the libraries locally in the local repository for maven.… Read more

Real-time Analytics with JSON

This post describes how to combine VoltDB JSON functionality and materialized views
to perform high velocity real-time analytics. For this example, we’ll make some
simplistic modifications modify the voter application (found in
/examples/voter) to store vote values as JSON and
generate real-time analytics using views on the JSON vote data.
Read more

Upsert: update or insert a record

There are many times when a database needs to maintain unique records, and as new data arrives it may not be known if it is a new record to be inserted, or an existing record to be updated.… Read more

VoltDB SQL Command-Line Tool

sqlcmd is a SQL shell interpreter that allows you to execute VoltDB SQL and
Stored Procedures interactively as well as non-interactively, via scripts.

The following examples show how to execute SQL and Stored Procedures against
the VoltDB Voter example.… Read more

Configuring Durability

VoltDB achieves on-disk durability via its command logging feature. Command logging is enabled via the deployment.xml file. Command logging can not be enabled/disabled on a running cluster.

    <cluster hostcount="4" sitesperhost="2" kfactor="1" />
    <commandlog enabled="true"/>

Command logging has several configurable properties, including the path to the directory that log files will be written to, synchronous vs.… Read more

Starting a Cluster

VoltDB is usually configured to run in a cluster. Clusters provide both horizontal scaling (more transactions, more memory for storing data) and allow replication of data for high availability.

To start a VoltDB cluster, you specify two additional pieces of information when starting the database processes.… Read more

Configuring High Availability

VoltDB, when running on multiple hosts, can tolerate the failure of one or more hosts and continue running. To accomplish this, the database replicates partitions to multiple servers within a cluster.… Read more

Configuring Partitioning

VoltDB distributes data and processing across partitions. Other systems use the terms “shards” or “regions”. There are two steps to configuring partitioning in VoltDB.

  1. Tell the database how to distribute data.
  2. Read more