YCSB/voltdb
Sean Busbey 46d5d35713
[voltdb] update to latest voltdb release. (#1402)
2020-11-30 10:20:45 -06:00
..
src Move all packages from com.yahoo.ycsb to site.ycsb. (#1354) 2019-09-19 13:51:09 -05:00
README.md [db voltdb] Add VoltDB client (#1319) 2019-09-17 06:29:23 -05:00
pom.xml [voltdb] update to latest voltdb release. (#1402) 2020-11-30 10:20:45 -06:00

README.md

YCSB for VoltDB

VoltDB Logo

README

This README describes how to run YCSB on VoltDB.

Here at VoltDB we use 4 machines for testing - 1 client and a 3 node cluster.

1. Install Java on all the machines involved.

VoltDB uses Java. Either Oracle Java or OpenJDK will work.

3. Install and configure VoltDB

If you don't already have a copy of VoltDB you should download and install it. Make sure you know the hostnames/ip addresses of all the nodes in the cluster and that port 21212 is open for your client.

A representative VoltDB cluster would have 3 nodes and a 'K factor' of 1. This configuration allows work to continue if a server dies.

Note: If you contact us we can give you access to AWS Cloudformation scripts and a matching AMI to create a cluster for you.

4. Install YCSB

Download the latest YCSB file. Follow the instructions.

5. Configure VoltDB parameters

Create a file called (for example) voltdb.properties:

recordcount=10000000
operationcount=10000000
voltdb.servers=localhost
threadcount=1
maxexecutiontime=300

Other possible entries would be:

  • voltdb.user - Username. Only needed if username/passwords enabled.
  • voltdb.password - Password. Only needed if username/passwords enabled.
  • voltdb.ratelimit - Maximum number of transactions allowed per second per 50 threads - e.g. 'voltdb.ratelimit=70000'. Note that as you increase the workload you eventually get to a point where throwing more and more transactions at a given configuration is counterproductive. For the three node configuration we mentioned above 70000 would be a good starting point for this value.
  • voltdb.scanall
    • When set to 'yes' uses a single query to return data for 'Scan' operations ('workload e') instead of a separate query per partition. The later is much more scalable but generates more network traffic.

6. Run YCSB

See: Running a Workload

Make sure you keep an eye on the voltdb GUI. If you installed VoltDB on the same computer you are running YCSB on it will be at:

http://localhost:8080/

First load the data:

bin/ycsb.sh load voltdb -P workloads/workloada -P voltdb.properties 

Then run the different workloads - 'a' through 'e':

 bin/ycsb.sh run voltdb -P workloads/workloada -P voltdb.properties 
 bin/ycsb.sh run voltdb -P workloads/workloadb -P voltdb.properties 
 bin/ycsb.sh run voltdb -P workloads/workloadc -P voltdb.properties 
 bin/ycsb.sh run voltdb -P workloads/workloadd -P voltdb.properties 
 bin/ycsb.sh run voltdb -P workloads/workloade -P voltdb.properties