PlatformLab / TorcDB

TorcDB: A Low-Latency Graph Database on RAMCloud
Apache License 2.0
17 stars 4 forks source link

TorcDB

Introduction

TorcDB is an implementation of the TinkerPop graph database API on RAMCloud, and stands for "TinkerPop On RAMCloud".

Setup Instructions

Running LDBC SNB Validation

TODO: uncomment this and point it to where it wants to be pointed

database=net.ellitron.ldbcsnbimpls.interactive.torc.TorcDb

TODO: uncomment this and point it to where it wants to be pointed

e.g. /path/to/validation_set/validation_params.csv

validate_database=/path/to/ldbc_snb_interactive_validation/neo4j/readwrite_neo4j--validation_set/validation_set/validation_params.csv

TODO: uncomment this and point it to where it wants to be pointed

/path/to/validation_set/

ldbc.snb.interactive.parameters_dir=/path/to/ldbc_snb_interactive_validation/neo4j/readwrite_neo4j--validation_set/validation_set/

TODO: uncomment this and point it to where it wants to be pointed

path specifying where to write the benchmark results file

STRING

COMMAND: -rd/--results_dir

results_dir=/path/to/ldbc_driver/results

* Download and build TorcDB implementation of LDBC SNB Interactive workload:

git clone git@github.com:PlatformLab/ldbc-snb-impls.git cd ldbc-snb-impls/ mvn install -DskipTests cd snb-interactive-torc/ mvn compile assembly:single

* Start a RAMCloud cluster (in a new window). The following starts a cluster
  with 4 servers, each with 1GB of memory, and 8GB of backup capacity, and with
  a replication factor of 3:

cd /path/to/TorcDB/RAMCloud ./scripts/cluster.py -s 4 -r 3 --masterArgs="--totalMasterMemory 1024 --segmentFrames 1024" -v

* Load the validation dataset into RAMCloud. Change parameters accordingly. The
  following assumes the coordinator is located at 
  `basic+udp:host=192.168.1.110,port=12246`:

cd /path/to/ldbc-snb-impls/snb-interactive-torc/

mvn exec:java -Dexec.mainClass="net.ellitron.ldbcsnbimpls.interactive.torc.util.GraphLoader" -Dexec.args="--coordLoc basic+udp:host=192.168.1.110,port=12246 --masters 4 --graphName ldbcsnbval01 --numLoaders 1 --loaderIdx 0 --numThreads 1 --txSize 32 --reportInt 2 --reportFmt LFDT nodes /path/to/ldbc_snb_interactive_validation/neo4j/readwrite_neo4j--validation_set/validation_set/"

mvn exec:java -Dexec.mainClass="net.ellitron.ldbcsnbimpls.interactive.torc.util.GraphLoader" -Dexec.args="--coordLoc basic+udp:host=192.168.1.110,port=12246 --masters 4 --graphName ldbcsnbval01 --numLoaders 1 --loaderIdx 0 --numThreads 1 --txSize 32 --reportInt 2 --reportFmt LFDT edges /path/to/ldbc_snb_interactive_validation/neo4j/readwrite_neo4j--validation_set/validation_set/"

mvn exec:java -Dexec.mainClass="net.ellitron.ldbcsnbimpls.interactive.torc.util.GraphLoader" -Dexec.args="--coordLoc basic+udp:host=192.168.1.110,port=12246 --masters 4 --graphName ldbcsnbval01 --numLoaders 1 --loaderIdx 0 --numThreads 1 --txSize 32 --reportInt 2 --reportFmt LFDT props /path/to/ldbc_snb_interactive_validation/neo4j/readwrite_neo4j--validation_set/validation_set/"

* Run validation against TorcDB:

cd /path/to/ldbc_driver java -cp target/jeeves-0.3-SNAPSHOT.jar:/path/to/ldbc-snb-impls/snb-interactive-torc/target/snb-interactive-torc-0.1.0-jar-with-dependencies.jar com.ldbc.driver.Client -p coordinatorLocator basic+udp:host=192.168.1.110,port=12246 -p graphName ldbcsnbval01 -P /path/to/ldbc_snb_interactive_validation/neo4j/readwrite_neo4j--ldbc_driver_config--db_validation.properties