memgraph/tests/public_benchmark/ldbc
Teon Banek df72861b90 Make csv_to_snapshot more user friendly
Summary:
Time csv_to_snapshot conversion and log it.
Check if writing csv_to_snapshot failed.
Extract LoadConfig from memgraph_bolt to config.hpp.
Read memgraph config in csv_to_snapshot for snapshot_directory.
Rename csv_to_snapshot to mg_import_csv.
Add tests for tools.
Run tools tests in apollo.

Reviewers: mislav.bradac, florijan, mferencevic, buda

Reviewed By: mferencevic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D931
2017-10-26 09:37:56 +02:00
..
config Remove ast-cache flag 2017-09-27 09:04:31 +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: Integrate with Apollo 2017-09-21 22:29:42 +02:00
build_dataset Make csv_to_snapshot more user friendly 2017-10-26 09:37:56 +02:00
cleanup LDBC: Integrate with Apollo 2017-09-21 22:29:42 +02:00
continuous_integration Added operation count to LDBC update runs. 2017-09-24 23:02:12 +02:00
index_creation.py Integrated C++ CSV to snapshot into LDBC. 2017-09-23 23:12:23 +02:00
ldbc-snb-impls-reads.properties Integrated C++ CSV to snapshot into LDBC. 2017-09-23 23:12:23 +02:00
ldbc-snb-impls-updates.properties ldbc: Separate running short reads from updates 2017-09-07 10:45:09 +02:00
README.md Integrated C++ CSV to snapshot into LDBC. 2017-09-23 23:12:23 +02:00
requirements.txt LDBC: Integrate with Apollo 2017-09-21 22:29:42 +02:00
run_benchmark Integrated C++ CSV to snapshot into LDBC. 2017-09-23 23:12:23 +02:00
setup Integrated C++ CSV to snapshot into LDBC. 2017-09-23 23:12:23 +02:00

LDBC benchmarks

How to run the benchmark against Neo4j OR Memgraph?

cd memgraph/tests/public_benchmark/ldbc
./setup
./build_dataset [--scale-factor 1]
# To run short reads by default, just call:
./run_benchmark --create-index --run-db memgraph # or neo4j
# To run update queries pass the properties file for updates and slow down
# the execution by setting a larger time compression ratio.
./run_benchmark --create-index --run-db memgraph --test-type updates \
                --time-compression-ratio 1.5

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.