Open-source graph database, built for real-time streaming data, compatible with Neo4j.
Go to file
Teon Banek 5f7837d613 Serialize Ast classes
Summary:
Although the first solution used cereal, the final implementation uses
boost. Since the cereal is still used in the codebase, compilation has
been modified to support multithreaded cereal.

In addition to serializing Ast classes, the following also needed to be
serialized:

  * GraphDbTypes
  * Symbol
  * TypedValue

TypedValue is treated specially, by inlining the serialization code in
the Ast class, concretely PrimitiveLiteral.

Another special case was the Function Ast class, which now stores a
function name which is resolved to a concrete std::function on
construction.

Tests have been added for serialized Ast in
tests/unit/cypher_main_visitor

Reviewers: mferencevic, mislav.bradac, florijan

Reviewed By: mislav.bradac

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D1067
2017-12-20 13:28:34 +01:00
cmake Add examples to installation 2017-12-12 14:59:54 +01:00
config Remove executor not run option 2017-12-18 14:36:15 +01:00
customers Refactor global ids and prepare for distributed 2017-12-05 13:05:55 +01:00
docs Add TED Talk example to quick start 2017-12-14 13:48:07 +01:00
experimental Remove extension from Python executables 2017-11-27 14:39:51 +01:00
libs Serialize Ast classes 2017-12-20 13:28:34 +01:00
poc Add parallel customers/Otto test 2017-11-23 09:20:53 +01:00
release Add examples to installation 2017-12-12 14:59:54 +01:00
src Serialize Ast classes 2017-12-20 13:28:34 +01:00
tests Serialize Ast classes 2017-12-20 13:28:34 +01:00
tools Add master/worker flags, main functions and coordination 2017-12-19 16:05:57 +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 Add examples to installation 2017-12-12 14:59:54 +01:00
.ycm_extra_conf.py Configure YCM for Cereal 2017-12-06 14:28:34 +01:00
CHANGELOG.md Bump Memgraph version to 0.9 2017-12-18 10:37:31 +01:00
CMakeLists.txt Serialize Ast classes 2017-12-20 13:28:34 +01:00
coverage Silence ctest when running for coverage 2017-06-13 11:54:43 +02:00
Doxyfile Exclude tools directory. 2017-11-06 10:54:15 +01:00
Doxylogo.png Doxygen setup 2016-12-20 15:49:52 +01:00
init Serialize Ast classes 2017-12-20 13:28:34 +01: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