/ldbc_snb_bi

Reference implementations for the LDBC Social Network Benchmark's Business Intelligence (BI) workload

Primary LanguagePythonApache License 2.0Apache-2.0

LDBC_LOGO

LDBC SNB Business Intelligence (BI) workload implementations

Build Status

Implementations for the BI workload of the LDBC Social Network Benchmark.

To get started with the LDBC SNB benchmarks, check out our introductory presentation: The LDBC Social Network Benchmark (PDF).

📜 If you wish to cite the LDBC SNB, please refer to the documentation repository (bib snippet).

Implementations

The repository contains the following implementations:

All implementations use Docker containers for ease of setup and execution. However, the setups can be adjusted to use a non-containerized DBMS.

Reproducing SNB BI experiments

Running an SNB BI experiment requires the following steps.

  1. Pick a tool, e.g. Umbra. Make sure you have the required binaries and licenses available.

  2. Generate the data sets using the SNB Datagen according to the format described in the tool's README.

  3. Generate the substitution parameters using the paramgen tool.

  4. Load the data set: set the required environment variables and run the tool's scripts/load-in-one-step.sh script.

  5. Run the benchmark: set the required environment variables and run the tool's scripts/benchmark.sh script.

  6. Collect the results in the output directory of the tool.

⚠️ Note that deriving official LDBC results requires commissioning an audited benchmark, which is a more complex process as it entails code review, ACID tests, etc. See the specification's Auditing chapter for details.

Cross-validation

To cross-validate the results of two implementations, run the power test for both tools, e.g. Cypher and Umbra results. Then, run:

scripts/cross-validate.sh cypher umbra

Note that the cross-validation uses the numdiff tool.

Usage

See .circleci/config.yml for an up-to-date example on how to use the projects in this repository.

Data sets

BI sets are being uploaded to the SURF CWI repository. (See download instructions.)