Open-source graph database, built for real-time streaming data, compatible with Neo4j.
Go to file
Teon Banek b15eeffd48 Extract communication to static library
Summary:
Session specifics have been move out of the Bolt `executing` state, and
are accessed via pure virtual Session type. Our server is templated on
the session and we are setting the concrete type, so there should be no
virtual call overhead. Abstract Session is used to indicate the
interface, this could have also been templated, but the explicit
interface definition makes it clearer.

Specific session implementation for running Memgraph is now implemented
in memgraph_bolt, which instantiates the concrete session type. This may
not be 100% appropriate place, but Memgraph specific session isn't
needed anywhere else.

Bolt/communication tests now use a dummy session and depend only on
communication, which significantly improves test run times.

All these changes make the communication a library which doesn't depend
on storage nor the database. Only shared connection points, which aren't
part of the base communication library are:

  * glue/conversion -- which converts between storage and bolt types, and
  * communication/result_stream_faker -- templated, but used in tests and query/repl

Depends on D1453

Reviewers: mferencevic, buda, mtomic, msantl

Reviewed By: mferencevic, mtomic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D1456
2018-07-11 12:52:41 +02:00
cmake Cleanup and reorganize release directory 2018-01-15 10:12:59 +01:00
config Add support for the id function 2018-07-04 22:14:13 +02:00
customers Implement manage script for card fraud demo 2018-02-12 13:29:12 +01:00
docs Add test stream clause 2018-07-09 11:00:18 +02:00
experimental Integrate code coverage with Apollo 2018-01-15 12:20:11 +01:00
libs Add kafka library and integrate it into memgraph 2018-07-06 15:52:23 +02:00
poc Clean utils folder (namespaces, function names) 2018-04-22 09:44:32 +02:00
release Install openssl inside docker, update order of sections in the documentation 2018-06-22 18:44:11 +02:00
src Extract communication to static library 2018-07-11 12:52:41 +02:00
tests Extract communication to static library 2018-07-11 12:52:41 +02:00
tools Extract TypedValue/DecodedValue conversion to higher component 2018-07-11 12:51:31 +02: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 Replace boost with capnp in RPC 2018-06-04 10:45:12 +02:00
.ycm_extra_conf.py Add kafka library and integrate it into memgraph 2018-07-06 15:52:23 +02:00
apollo_archives.py Refactor Apollo build projects 2018-03-27 13:47:18 +02:00
apollo_archives.yaml Refactor Apollo build projects 2018-03-27 13:47:18 +02:00
apollo_build.yaml Increase init timeout 2018-05-18 14:32:41 +02:00
CHANGELOG.md Update changelog and bump version to 0.12 2018-07-04 20:41:10 +02:00
CMakeLists.txt Add kafka library and integrate it into memgraph 2018-07-06 15:52:23 +02: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 Update clang dependency to 3.9 2018-07-10 11:40:38 +02: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