Open-source graph database, built for real-time streaming data, compatible with Neo4j.
Go to file
Teon Banek 394039a05e Use and bench custom allocator in Distinct
Summary:
According to the written benchmark, using MonotonicBufferResource yields
significant improvements to performance of Distinct. The setup fills the
database with vertices depending on the benchmark state. No edges are
created. Then we run DISTINCT on that. Since each vertex is unique, we
will store everything in the `DistinctCursor::seen_rows_`, which is
backed by a MemoryResource. This setup, on my machine, yields 10 times
better performance when run with MonotonicBufferResource.

Reviewers: mferencevic, mtomic, msantl

Reviewed By: mferencevic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D1894
2019-05-09 15:45:49 +02:00
cmake Remove Cap'n Proto 2019-05-08 10:51:10 +02:00
config Implement full durability mode 2018-08-29 16:05:07 +02:00
customers Implement manage script for card fraud demo 2018-02-12 13:29:12 +01:00
docs Migrate to Clang 8 2019-04-19 12:34:50 +02:00
environment Migrate to Clang 8 2019-04-19 12:34:50 +02:00
experimental Integrate code coverage with Apollo 2018-01-15 12:20:11 +01:00
libs Remove Cap'n Proto 2019-05-08 10:51:10 +02:00
poc Clean utils folder (namespaces, function names) 2018-04-22 09:44:32 +02:00
release Add backpacking tutorial 2019-04-11 09:48:56 +02:00
src Use and bench custom allocator in Distinct 2019-05-09 15:45:49 +02:00
tests Use and bench custom allocator in Distinct 2019-05-09 15:45:49 +02:00
tools Remove Cap'n Proto 2019-05-08 10:51:10 +02:00
.arcconfig arcconfig: Default to master for diff and land 2017-11-07 18:41:51 +01:00
.arclint Add basic support for arc lint with clang-tidy 2019-04-23 15:51:36 +02:00
.clang-format Edges data structure now supports multiple edge filtering (implicit OR) 2017-09-26 13:46:18 +02:00
.clang-tidy Enable more checks in clang-tidy 2019-05-07 09:38:25 +02:00
.gdbinit Add pretty printer to gdb for TypedValue 2017-08-16 11:32:25 +02:00
.gitignore Remove Cap'n Proto 2019-05-08 10:51:10 +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 Polish Bolt client and mg_client 2018-10-19 13:55:51 +02:00
apollo_build.yaml Use new toolchain for parent diff build 2019-04-23 13:07:20 +02:00
CHANGELOG.md Add recovery and GraphDbAccessor interface for UniqueLabelPropertyConstraint 2019-03-27 12:33:56 +01:00
CMakeLists.txt Remove Cap'n Proto 2019-05-08 10:51:10 +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 Quickload lcp and lcp/test to avoid any missing dependencies 2019-05-09 15:44:55 +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