Fork of https://github.com/oxigraph/oxigraph.git for the purpose of NextGraph project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
oxigraph/bench
Tpt bf35eec82f Uses async_h1 in Oxigraph server 4 years ago
..
bsbm-tools@59d0a8a605 Makes easier to run benchmarks by adding BSBM as a submodule 5 years ago
README.md Updates the benchmark 5 years ago
bsbm-plot.py Adds a README for the benchmark 5 years ago
bsbm.businessIntelligence.svg Updates the benchmark 5 years ago
bsbm.explore.svg Tweaks the join reordering algorithm to prefer using bound variables 5 years ago
bsbm_blazegraph.sh Makes easier to run benchmarks by adding BSBM as a submodule 5 years ago
bsbm_graphdb.sh Makes easier to run benchmarks by adding BSBM as a submodule 5 years ago
bsbm_oxigraph.sh Uses async_h1 in Oxigraph server 4 years ago
bsbm_virtuoso.sh Improves benchmarks 5 years ago

README.md

BSBM

The Berlin SPARQL Benchmark (BSBM) is a simple SPARQL benchmark.

It provides a dataset generator and multiple set of queries grouped by "use cases".

Results

We compare here Oxigraph with some existing SPARQL implementations (Blazegraph, Virtuoso and GraphDB).

The dataset used in the following charts is generated with 10k "products" (see its spec). It leads to the creation of 3.5M triples. It has been executed on a Dell Precision 5520 with 16GB of RAM. For Oxigraph, available memory has been limited to 1GB.

Explore

The explore use case is composed of 11 queries that do simple data retrieval.

Query 6 existed in previous versions of the benchmark as is now removed.

explore use case results

Business Intelligence

The business intelligence use case is composed of 8 complex analytics queries.

Query 4 seems to be failing on Virtuoso and query 5 on Blazegraph and GraphDB.

Oxigraph is still too slow to evaluate most of the queries. It will be added in the graph after enough optimizations are done.

explore use case results

How to reproduce the benchmark

The code of the benchmark is in the bsbm-tools submodule. You should pull it with a git submodule update before running the benchmark.

To run the benchmark for Oxigraph run bash bsbm_oxigraph.sh. It will compile the current Oxigraph code and run the benchmark against it. You could tweak the number of products in the dataset and the available memory using the environment variables at the beginning of bsbm_oxigraph.sh.

To generate the plots run python3 bsbsm-plot.py.

Scripts are also provided for the other benchmarks (bsbm_blazegraph.sh, bsbm_graphdb.sh and bsbm_virtuoso.sh).