Open-source graph database, built for real-time streaming data, compatible with Neo4j.
Go to file
florijan bce4407ebe CostEstimator - adding new ScanAll and Expand ops
Summary:
Now all ScanAll and Expand ops are covered by the cost estimator. For ScanAll with indices cost estimation is pretty good, for new Expand ops it is tragically bad (Expand to the power of expansion depth, plus arbitrary filtering). Static cost estimation is wrong wrong wrong.

Currently cost estimation of even trivial plans that use indices is wrong because the planner leaves filtering expressions that are implicitly handled by the index in the operator tree, IIRC. Tasking Teon to revise this, even though I'm not sure how bad an influence this has on cost estimation and it's use in plan choosing.

Reviewers: mislav.bradac, teon.banek, buda

Reviewed By: mislav.bradac

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D633
2017-08-04 14:32:22 +02:00
cmake Make GNU Readline dependency optional 2017-03-24 12:42:45 +01:00
config Added continuous_integration script to stress tests. 2017-08-02 12:06:59 +02:00
docs Plan variable length expand 2017-07-26 12:36:47 +02:00
experimental Merged experimental repo. 2017-08-03 12:48:19 +02:00
libs Added rapidcheck 2017-06-30 16:26:21 +02:00
poc Migrate timer to use walltime, instead of cputime 2017-07-17 13:42:44 +02:00
release Release preparation. 2017-06-16 15:16:11 +02:00
src CostEstimator - adding new ScanAll and Expand ops 2017-08-04 14:32:22 +02:00
tests CostEstimator - adding new ScanAll and Expand ops 2017-08-04 14:32:22 +02:00
tools Added continuous_integration script to stress tests. 2017-08-02 12:06:59 +02:00
.arcconfig Set arc.land.onto.default to dev 2017-03-03 13:33:45 +01:00
.clang-format Query - LogicalOp - visitable bug fix 2017-03-22 14:14:01 +01:00
.gdbinit Add print-operator-tree command to gdb 2017-06-08 09:37:05 +02:00
.gitignore NeoRunner + Harness bugfix 2017-07-29 17:46:24 +02:00
.ycm_extra_conf.py Add cppitertools to ycm, small changes in loogging 2017-07-12 13:07:37 +02:00
CHANGELOG.md Plan variable length expand 2017-07-26 12:36:47 +02:00
CMakeLists.txt Merged experimental repo. 2017-08-03 12:48:19 +02:00
coverage Silence ctest when running for coverage 2017-06-13 11:54:43 +02:00
Doxyfile Enable AUTOBRIEF for doxygen 2017-06-02 08:59:49 +02:00
Doxylogo.png Doxygen setup 2016-12-20 15:49:52 +01:00
format Migrate command line args to gflgs in tests 2017-07-06 13:54:12 +02:00
init Added continuous_integration script to stress tests. 2017-08-02 12:06:59 +02:00
install_neo NeoRunner + Harness bugfix 2017-07-29 17:46:24 +02:00
llvm-gcov memgraph coverage (lcov setup in progress...) 2017-03-07 18:27:03 +01:00
README.md Migrate command line args to gflgs in tests 2017-07-06 13:54:12 +02:00

memgraph

Memgraph is an ACID compliant high performance transactional distributed in-memory graph database featuring runtime native query compiling, lock free data structures, multi-version concurrency control and asynchronous IO.

dependencies

Memgraph can be compiled using any modern c++ compiler. It mostly relies on the standard template library, however, some things do require external libraries.

Some code contains linux-specific libraries and the build is only supported on a 64 bit linux kernel.

  • linux
  • clang 3.8 (good c++11 support, especially lock free atomics)
  • antlr (compiler frontend)
  • cppitertools
  • fmt format
  • google benchmark
  • google test
  • glog
  • gflags