Getting started with GridDB connector for YCSB

The GridDB connector for YCSB enables benchmarking of GridDB databases using the Yahoo Cloud Serving Benchmark. This guide has been written for use with Centos 6.7 (x64) with JDK 1.7.0_79 and YCSB 0.10.0.

Building YCSB and the GridDB Connector

  1. Install YCSB
    ~ $ wget https://github.com/brianfrankcooper/YCSB/releases/download/0.10.0/ycsb-0.10.0.tar.gz
    ~ $ tar xfvz ycsb-0.10.0.tar.gz
    ~ $ cd ycsb-0.10.0

    Please refer to https://github.com/brianfrankcooper/YCSB/wiki/Getting-Started for instructions on how to build YCSB.

  2. Download the GridDB connector into the YCSB top level directory.
    ycsb-0.10.0 $ git clone https://github.com/griddb/griddb_ycsb.git
    ycsb-0.10.0 $ mv -a griddb_ycsb/griddb  griddb_ycsb/build.xml .
  3. Then edit bin/ycsb as follows.
    DATABASES = {
     "griddb" : "com.yahoo.ycsb.db.GridDBClient",
     ...
  4. Build the GridDB plugin:
     ycsb-0.10.0 $ mkdir -p griddb-binding/lib
     ycsb-0.10.0 $ ant griddb

    Which will create griddb-binding/lib/griddb-binding.jar.

GridDB Configuration Considerations

For optimum performance, set the number of CPU cores as /dataStore/concurrency in gs_node.json and “32KB” as /dataStore/storeBlockSize in gs_cluster.json.

Running YCSB

After starting the GridDB server, you can execute YCSB.

First load the dataset:

ycsb-0.10.0 $ ./bin/ycsb load griddb -P workloads/workloada \
    -p notificationAddress=<GridDB notification address(default is 239.0.0.1)> \
    -p notificationPort=<GridDB notification port(default is 31999)> \
    -p clusterName=<GridDB cluster name> \
    -p userName=<GridDB user name> \
    -p password=<GridDB password> \
    -p fieldcount=10 \
    -p fieldlength=100

And then you’re able to run a transactional workload:

ycsb-0.10.0 $ ./bin/ycsb run griddb -P workloads/workloada
    -p notificationAddress=<GridDB notification address(default is 239.0.0.1)> \
    -p notificationPort=<GridDB notification port(default is 31999)> \
    -p clusterName=<GridDB cluster name> \
    -p userName=<GridDB user name> \
    -p password=<GridDB password> \
    -p fieldcount=10 \
    -p fieldlength=100

If your environment uses the FIXED_LIST method of notifications, replace the notificationAddress and notificationPort variables with the notificationMember variable, which value should be a comma seperated list of node IPs and ports such as “10.0.0.1:10001,10.0.0.2:10001,10.0.0.3:10001”.

Community

If you encounter any issues or have any requests or other questions, please submit feedback on the GridDB Developer Forum.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.