memgraph/tests/public_benchmark/ldbc
Teon Banek 4601f6c368 Add filtering BFS by edge type
Summary:
Antlr grammar has been updated to support putting edge types after the BFS
symbol. Planner collects edge type filters for BFS and inlines them in the
operator by joining the filter with the user input BFS filter itself. This
requires no change from the standpoint of the operator. On the other hand, in
order to use the faster lookup by a single edge type, `ExpandBreadthFirst`
operator now accept an optional edge type. The edge type is passed from the
planner only if the user is filtering by a single type.

Unit tests as well as tck have been updated.

Reviewers: florijan, mislav.bradac

Reviewed By: florijan

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D777
2017-09-12 11:29:38 +02:00
..
memgraph_snapshots LDBC 2017-08-28 09:34:22 +02:00
neo4j_config LDBC 2017-08-28 09:34:22 +02:00
neo4j_home LDBC 2017-08-28 09:34:22 +02:00
plots A python script that visualizes latency results from LDBC. 2017-09-04 16:36:42 +02:00
results A python script that visualizes latency results from LDBC. 2017-09-04 16:36:42 +02:00
test_cases Add filtering BFS by edge type 2017-09-12 11:29:38 +02:00
.gitignore ldbc: Extract update queries 2017-09-01 14:13:04 +02:00
index_creation.py LDBC queries checked 2017-09-02 10:36:02 +02:00
ldbc-snb-impls-pom.xml LDBC 2017-08-28 09:34:22 +02:00
ldbc-snb-impls-short-reads.properties ldbc: Separate running short reads from updates 2017-09-07 10:45:09 +02:00
ldbc-snb-impls-updates.properties ldbc: Separate running short reads from updates 2017-09-07 10:45:09 +02:00
mg LDBC 2017-08-28 09:34:22 +02:00
neo LDBC 2017-08-28 09:34:22 +02:00
README.md ldbc: Separate running short reads from updates 2017-09-07 10:45:09 +02:00
requirements_2.txt LDBC 2017-08-28 09:34:22 +02:00
requirements_3.txt LDBC 2017-08-28 09:34:22 +02:00
run_benchmark ldbc: Separate running short reads from updates 2017-09-07 10:45:09 +02:00
setup_dataset Cleanup some errors in ldbc setup scripts 2017-09-01 14:13:34 +02:00
setup_dependencies Cleanup some errors in ldbc setup scripts 2017-09-01 14:13:34 +02:00
setup_system Cleanup some errors in ldbc setup scripts 2017-09-01 14:13:34 +02:00

LDBC benchmarks

How to run the benchmark against Neo4j OR Memgraph?

cd memgraph/tests/public_benchmark/ldbc
./setup_system
./setup_dependencies
./setup_dataset [--scale-factor 1]
./neo [--run] OR ./mg [--run]
# To run short reads by default, just call:
./run_benchmark
# To run update queries use the following.
./run_benchmark --properties-file ldbc-snb-impls-updates.properties
# You may need to increase the time compression when updating:
./run_benchmark --time-compresion-ratio 1.5 --properties-file ldbc-snb-impls-updates.properties

How to run a specific test?

cd memgraph/tests/public_benchmark/ldbc/ldbc-snb-impls/snb-interactive-neo4j
mvn exec:java -Dexec.mainClass="net.ellitron.ldbcsnbimpls.interactive.neo4j.util.QueryTester" -Dexec.args="shortquery1 933 --repeat=10000 --timeUnits=MICROSECONDS"

Useful terminal commands

How to find out Default Query Limits?

cd memgraph/tests/public_benchmark/ldbc/ldbc_driver
ag "DEFAULT_LIMIT"

How to run test cases?

cd memgraph/tests/public_benchmark/ldbc
neo4j-client --insecure -u "" -p "" -o test_cases/results/short_query_2.oc.out -i test_cases/queries/short_query_2.oc localhost 7687

How to create indexes manually?

cd memgraph/tests/public_benchmark/ldbc
source ve3/bin/activate
./index_creation.py ldbc-snb-impls/snb-interactive-neo4j/scripts/indexCreation.neo4j

Where is and how to use LDBC plotting?

cd memgraph/tests/public_benchmark/ldbc
source ve2/bin/activate
cd memgraph/tests/public_benchmark/ldbc/ldbc_driver/plotting
python make_charts_all_queries_all_metrics.py /path/to/ldbc_driver/results/LDBC-results.json legend_location

TODOs

  1. Run & validate all Short queries + optimize MemGraph performance.
  2. Write the log parser.
  3. Visualize the results.
  4. Run & validate all Update queries + optimize MemGraph performance.
  5. Run apacaci code an compare the results (Do We Need Specialized Graph Database?).
  6. Optimize MemGraph performance.
  7. Scale benchmarks (scale factors 1, 3, 10).
  8. Test against Postgres and make comparison between Neo, Memgraph & Postgres. Latency + Throughput.
  9. Run & validate all queries + optimize MemGraph performance.
  10. Optimize MemGraph spinup time.