Open-source graph database, built for real-time streaming data, compatible with Neo4j.
Go to file
florijan 03c78c1277 BFS syntax changes
Summary:
- The new BFS syntax implemented as proposed.
- AST BreadthFirstAtom now uses EdgeAtom members: has_range_{true}, upper_bound_, lower_bound_
- Edges data structure now handles all the edge filtering (single or multiple edges), to ease planning. Additional edge filtering (additional Filter op in the plan) is removed. AST EdgeTypeTest is no longer used and is removed.

Current state is stable but there are things left to do:
- BFS property filtering.
- BFS lower_bound_ support.
- Support for lambdas in variable length expansion. This includes obligatory (even if not user_defined) inner_node and inner_edge symbols for easier handling.
- Code-sharing between BFS and variable length expansions.

I'll add asana tasks (and probably start working on them immediately) when/if this lands.

Reviewers: buda, teon.banek, mislav.bradac

Reviewed By: teon.banek

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D836
2017-09-27 16:25:19 +02:00
cmake Setup basic installation for CPackDeb 2017-09-26 14:54:13 +02:00
config Remove ast-cache flag 2017-09-27 09:04:31 +02:00
docs BFS syntax changes 2017-09-27 16:25:19 +02:00
experimental Make almost all libs external 2017-09-27 13:46:33 +02:00
libs Make almost all libs external 2017-09-27 13:46:33 +02:00
poc Make almost all libs external 2017-09-27 13:46:33 +02:00
release Remove LOG_NO_STDOUT flag 2017-08-24 10:45:35 +02:00
src BFS syntax changes 2017-09-27 16:25:19 +02:00
tests BFS syntax changes 2017-09-27 16:25:19 +02:00
tools Make almost all libs external 2017-09-27 13:46:33 +02:00
.arcconfig Set arc.land.onto.default to dev 2017-03-03 13:33:45 +01:00
.clang-format Edges data structure now supports multiple edge filtering (implicit OR) 2017-09-26 13:46:18 +02:00
.gdbinit Add pretty printer to gdb for TypedValue 2017-08-16 11:32:25 +02:00
.gitignore Removed Double Locking, Simplified Ownership or LocalEventStream, .... 2017-08-04 17:58:22 +02:00
.ycm_extra_conf.py Start work on parallel benchmark 2017-09-12 16:58:21 +02:00
CHANGELOG.md BFS syntax changes 2017-09-27 16:25:19 +02:00
CMakeLists.txt Make almost all libs external 2017-09-27 13:46:33 +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 Remove unnecessary requirements 2017-08-28 10:19:14 +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