Open-source graph database, built for real-time streaming data, compatible with Neo4j.
cyphergraphgraph-algorithmsgraph-analysisgraph-databasekafkakafka-streamsnosqlopencypherstream-processingstreaming-data
4db62b18f0
Summary: Visitor pattern's main issue is cyclical dependency between classes that are visited and the visitor instance itself. We need to decouple this dependency if we want to open source part of the code, namely non-distributed part. This decoupling is achieved through the use of `dynamic_cast` in distributed operators. Hopefully the solution is good enough and doesn't cause performance issues. An alternative solution is to build our own custom double dispatch solution, but that will basically boil down to our implementation of runtime type information and casts. Note, this only decouples the distributed operators. If and when we decide that other operators shouldn't be open sourced, the same `dynamic_cast` pattern should be applied in them also. Depends on D1563 Reviewers: mtomic, msantl, buda Reviewed By: mtomic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1566 |
||
---|---|---|
cmake | ||
config | ||
customers | ||
docs | ||
experimental | ||
libs | ||
poc | ||
release | ||
src | ||
tests | ||
tools | ||
.arcconfig | ||
.clang-format | ||
.gdbinit | ||
.gitignore | ||
.ycm_extra_conf.py | ||
apollo_archives.py | ||
apollo_archives.yaml | ||
apollo_build.yaml | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
Doxyfile | ||
Doxylogo.png | ||
init | ||
README.md |
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