Skip to content

Jsalim/GraphDB-Benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GDB: Graph Database Benchmark

GDB is a distributed graph database benchmarking framework. GDB's purpose is to test and compare different Blueprints-compliant graph databases. This tool can be used to simulate real graph database work loads with any number of concurrent clients performing any type of operation on any type of graph.

This Work is a joint work with Valentin Vansteenberghe during his internship in EURA NOVA For more details you can read the research paper: An empirical comparison of graph databases

Requirements

  • Java JDK 7
  • Python 2.7.x
  • Git
  • Apache Maven
  • 7zip

Installation

Cloning the project

To clone GDB sources from Github, open a command prompt, go to the folder where you want to clone the project and type: git clone https://github.com/Jsalim/GraphDB-Benchmark.git

Building GDB

To build GDB on a Linux host, run build.sh (resp. build.bat on a Windows host). This will create a GDB-Distrib directory containing executable files. Copy this directory to as many machines as required.

Starting GDB actors

On each machine, you will have to modify the file GDB-Distrib/config/application.conf. This file is the AKKA configuration file used to configure all the actors of the system. On the server machine, change the IP address (and optionally the port number) in the SSys section of the file with the network address that must be used by the server. The same configuration applies for the master client (MCSys section) and the slave clients (SCSys section) actors.

To start the server on a Linux host, run GDB-Distrib/startserver.sh (resp. startserver.bat on a Windows host).
To start the master client on a Linux host, run GDB-Distrib/startmc.sh (resp. startmc.bat on a Windows host).
To start a slave client on a Linux host, run GDB-Distrib/startsc.sh (resp. startsc.bat on a Windows host).

After having started the server, the master client and at least one slave client, the user is allowed to start running a benchmark.

Defining and starting your benchmark

Source mode

In order to define a custom benchmark, start by modifying the file GDB-Distrib/src/main/java/com/silvertower/app/bench/main/Benchmark.java.
There are two methods that can be modifed:

  • The method Benchmark#addInitializers defines which graph databases will be evaluated during the benchmark
  • The method Benchmark#benchmark specifies which workloads will be executed on each graph database

When your benchmark is defined, rebuild GDB. Then, to start running your benchmark, open a command prompt, go to the GDB-Distrib directory and type:
java -jar client.jar commandline serverAdd serverPort masterClientAddress masterClientPort slaveClient1Address slaveClient1Port ... slaveClientXAddress slaveClientXPort

This will start the benchmark runner locally and all the other actors. Then, the benchmark runner will receive instructions from the benchmark defined by the user.

GUI mode

To start GDB's visual interface open a command prompt, go to the GDB-Distrib directory and type:
java -jar client.jar gui

Results and visualizations

Logs are generated during the benchmark for further analysis and comparisons (a log file GDB-Distrib\log\log.txt is created at benchmark startup). One can also define results visualizations in source mode. The resulting figures are output in GDB-Distrib\plots.

About

GDB is a distributed graph database benchmarking framework.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published