LDBC Social Network Benchmark @ Neo Technology Alex Averbuch 1 1 Neo Technology Alex Averbuch LDBC & Neo4j 1 / 19
Table of Contents 1 Introduction 2 3 4 Alex Averbuch LDBC & Neo4j 2 / 19
Introduction LDBC Social Network Benchmark DATA: social network, user activity, realistic SCALABLE: 1, 3, 10, 30, 100,... QUERIES: 14 reads, 8 updates, (8 additional short reads soon) TOOLS DATA GENERATOR: github.com/ldbc/ldbc_snb_datagen DRIVER: github.com/ldbc/ldbc_driver SPEC: github.com/ldbc/ldbc_snb_docs Alex Averbuch LDBC & Neo4j 3 / 19
Introduction Neo4j Implementation VERSIONS: 2.0, 2.1, 2.2 API: Java, Cypher VALIDATED: Neo4j Cypher x Neo4j Java x Sparksee github.com/ldbc-dev/ldbc_snb_interactive_validation CODE: github.com/ldbc-dev/ldbc_snb_workload_interactive_neo4j Alex Averbuch LDBC & Neo4j 4 / 19
Introduction Alex Averbuch LDBC & Neo4j 5 / 19
Table of Contents 1 Introduction 2 3 4 Alex Averbuch LDBC & Neo4j 6 / 19
Instructions Introduction 1 GENERATE DATA github.com/ldbc/ldbc_snb_datagen Alex Averbuch LDBC & Neo4j 7 / 19
Instructions Introduction 1 GENERATE DATA github.com/ldbc/ldbc_snb_datagen 2 IMPORT DATA java -jar data-import-version.jar db/ csv/ Alex Averbuch LDBC & Neo4j 7 / 19
Instructions Introduction 1 GENERATE DATA github.com/ldbc/ldbc_snb_datagen 2 IMPORT DATA java -jar data-import-version.jar db/ csv/ 3 RUN BENCHMARK java -jar benchmark-run-version.jar [args] github.com/ldbc/ldbc_driver Alex Averbuch LDBC & Neo4j 7 / 19
Instructions Introduction 1 GENERATE DATA github.com/ldbc/ldbc_snb_datagen 2 IMPORT DATA java -jar data-import-version.jar db/ csv/ 3 RUN BENCHMARK java -jar benchmark-run-version.jar [args] github.com/ldbc/ldbc_driver 4 COLLECT GIFTS 1 results.json 2 results log.csv 3 plans.json (Cypher only) Alex Averbuch LDBC & Neo4j 7 / 19
Artifacts - results.json Alex Averbuch LDBC & Neo4j 8 / 19
Artifacts - results.json make compare charts.py github.com/ldbc/ldbc_driver/plotting LDBC SNB Interactive Runtime (MILLISECONDS) 10000 1000 100 10 3667 243 90th a 90th b 50th a 50th b 277 95 1439 14106 69770 4458 12038 75 171 6932 25144 276 4323 52 322 2740 4 11447 301 203 7887 1 LdbcQuery1 LdbcQuery2 3 LdbcQuery3 LdbcQuery4 LdbcQuery5 2 LdbcQuery6 LdbcQuery7 LdbcQuery8 LdbcQuery9 LdbcQuery10 LdbcQuery11 LdbcQuery12 LdbcQuery13 LdbcQuery14 2 0 Alex Averbuch LDBC & Neo4j 9 / 19
Artifacts - results log.json Alex Averbuch LDBC & Neo4j 10 / 19
Artifacts - plans.json Alex Averbuch LDBC & Neo4j 11 / 19
Table of Contents 1 Introduction 2 3 4 Alex Averbuch LDBC & Neo4j 12 / 19
LDBC SNB Builds build types SCALE FACTOR: 1, 3, 10 NEO4J VERSION: 2.0, 2.1, 2.2 API: Cypher, Java WORKLOAD: Read-Only, Write-Only, Read-Write Alex Averbuch LDBC & Neo4j 13 / 19
LDBC SNB Builds build types SCALE FACTOR: 1, 3, 10 NEO4J VERSION: 2.0, 2.1, 2.2 API: Cypher, Java WORKLOAD: Read-Only, Write-Only, Read-Write build process 1 RETRIEVE CSV FILES 2 IMPORT CSV FILES 3 RUN BENCHMARK 4 STORE RESULTS Alex Averbuch LDBC & Neo4j 13 / 19
Plotting - Compare Neo4j Versions (Query 11) Alex Averbuch LDBC & Neo4j 14 / 19
Plotting - Individual Query Individual Run (Query 11) Alex Averbuch LDBC & Neo4j 15 / 19
Plotting - Many Queries Individual Run Alex Averbuch LDBC & Neo4j 16 / 19
Table of Contents 1 Introduction 2 3 4 Alex Averbuch LDBC & Neo4j 17 / 19
Feedback Introduction 1 warm-up support 2 more plotting scripts 3 revisit query mix - slow / fast queries different between vendors Alex Averbuch LDBC & Neo4j 18 / 19
Questions Introduction Alex Averbuch LDBC & Neo4j 19 / 19