46d5d35713 | ||
---|---|---|
.. | ||
src | ||
README.md | ||
pom.xml |
README.md
YCSB for VoltDB
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