This example application demonstrates how to create a Key/Value store using VoltDB
and the automatic stored procedures created for each table.
Many attributes of the application are customizable through arguments passed to the client.
The default client configuration will allow the system to automatically tune itself for
optimal performance, regardless of the underlying hardware and cluster deployment.
The client starts fire-hosing: attempting to submit transactions faster than
the server can possibly process them (1 billion transactions per second, or 1B TPS).
Within 5 seconds, the automated tuning determines an optimized throughput (TPS) that
maintains transaction latency within 6 milliseconds.
You can also turn auto-tuning off to experiment with different loads or to better
understand why proper tuning is key to getting the most out of specific VoltDB deployments.
This example application is designed with benchmarking in mind. It allows you to
adjust many attributes of the application by modifying arguments passed to the client in
run.sh script, including:
- Maximum number of transactions per second
- Length of time the sample client runs
- When to start recording performance statistics
- How frequently to report those statistics
- Size of the Key column
- Minimum and Maximum size of the Value input
- Percentage of read transactions versus write transactions
- Whether to compress the Value before insertion
Note that the application is essentially a network-bound application: it generally maxes out
the network bandwidth long before it exhausts the throughput processing capability of VoltDB.
The code for the Key/Value sample application ships as part of the VoltDB product
in the /examples folder. You can also find it in the
VoltDB github repository.