Open-source graph database, built for real-time streaming data, compatible with Neo4j.
Go to file
florijan 9721ccf61c Cleanup per-transaction caches in distributed
Summary:
On the master cleanups are hooked directly into the transaction engine.
This is beneficial because the master might have bigger caches and we
want to clear them as soon as possible.

On the workers there is a periodic RPC call to the master about living
transactions, which takes care of releasing local caches. This is
suboptimal because long transactions will prevent cache GC (like with
data GC). It is however fairly simple.

Note that all cleanup is not done automatically and `RemotePull` has
been reduced accordingly. @msantl, please verify correctness and
consider if the code can be additionally simplified.

Reviewers: teon.banek, msantl

Reviewed By: msantl

Subscribers: pullbot, msantl

Differential Revision: https://phabricator.memgraph.io/D1202
2018-02-16 15:30:05 +01:00
cmake Cleanup and reorganize release directory 2018-01-15 10:12:59 +01:00
config Remove executor not run option 2017-12-18 14:36:15 +01:00
customers Implement manage script for card fraud demo 2018-02-12 13:29:12 +01:00
docs Add ExpandWeightedShortestPathCursor 2018-02-14 09:32:41 +01:00
experimental Integrate code coverage with Apollo 2018-01-15 12:20:11 +01:00
libs Integrate code coverage with Apollo 2018-01-15 12:20:11 +01:00
poc Add parallel customers/Otto test 2017-11-23 09:20:53 +01:00
release Cleanup and reorganize release directory 2018-01-15 10:12:59 +01:00
src Cleanup per-transaction caches in distributed 2018-02-16 15:30:05 +01:00
tests Cleanup per-transaction caches in distributed 2018-02-16 15:30:05 +01:00
tools Add some metric types and basic RPC server stats 2018-02-16 08:33:15 +01:00
.arcconfig arcconfig: Default to master for diff and land 2017-11-07 18:41:51 +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 Changed macro benchmark summary format 2017-12-28 16:35:45 +01:00
.ycm_extra_conf.py Configure YCM for Cereal 2017-12-06 14:28:34 +01:00
apollo_archives.py Add initial version of Apollo config files 2018-01-10 14:46:10 +01:00
apollo_archives.yaml Add initial version of Apollo config files 2018-01-10 14:46:10 +01:00
apollo_build.yaml Integrate code coverage with Apollo 2018-01-15 12:20:11 +01:00
CHANGELOG.md Add REDUCE function to openCypher 2018-02-07 12:48:20 +01:00
CMakeLists.txt Implement simple log file storage for raft 2018-01-15 18:07:45 +01:00
Doxyfile Add initial version of Apollo config files 2018-01-10 14:46:10 +01:00
Doxylogo.png Doxygen setup 2016-12-20 15:49:52 +01:00
init Implement simple log file storage for raft 2018-01-15 18:07:45 +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