Code Monkey home page Code Monkey logo

torcdb's Introduction

TorcDB

Introduction

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

Setup Instructions

  • After cloning the repository, update and initialize submodules:
git submodule update --init --recursive
  • Build RAMCloud:
cd RAMCloud/
make -j8 DEBUG=no
  • Install ramcloud client library:
ln -s $(pwd)/obj/libramcloud.so ~/local/lib/libramcloud.so
  • Ensure that library path set in LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=~/local/lib
  • Build RAMCloud java library:
cd bindings/java/
./gradlew
  • Install RAMCloud java library in local maven repository:
mvn install:install-file -Dfile=./build/libs/ramcloud.jar -DgroupId=edu.stanford -DartifactId=ramcloud -Dversion=1.0 -Dpackaging=jar
  • Build TorcDB:
cd ../../..
mvn install -DskipTests
  • Use this in your POM file:
<dependency>
  <groupId>net.ellitron.torc</groupId>
  <artifactId>torc</artifactId>
  <version>1.0.0</version>
</dependency>

Running LDBC SNB Validation

  • Download and build the LDBC driver:
git clone [email protected]:ldbc/ldbc_driver.git
cd ldbc_driver/
mvn install -DskipTests
  • Download and extract the LDBC SNB Interactive validation dataset:
git clone [email protected]:ldbc/ldbc_snb_interactive_validation.git
cd ldbc_snb_interactive_validation/neo4j
mkdir readwrite_neo4j--validation_set
tar -xvzf readwrite_neo4j--validation_set.tar.gz -C readwrite_neo4j--validation_set
  • Configure validation by editing readwrite_neo4j--ldbc_driver_config--db_validation.properties (Pro tip: In vim, use :r!pwd to insert path of current working directory to make editing the paths easier):
# -------------------------------------
# -------------------------------------
# ----- LDBC Driver Configuration -----
# -------------------------------------
# -------------------------------------

# 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 [email protected]: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

torcdb's People

Contributors

jdellithorpe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.