Open-source graph database, built for real-time streaming data, compatible with Neo4j.
Go to file
Dominik Tomičević 38ec6a10b1 implemented a lockfree list
Summary: It's not the fastest for all operations but it's efficient on inserts to front and list traversals. removes are quite slow but it's not important because remove is only used by the garbage collector.

Test Plan: Reason wisely

Reviewers: buda, borko

Differential Revision: https://phabricator.tomicevic.com/D1
2015-09-22 01:13:42 +02:00
benchmark modified allocator benchmark to be multithreaded 2015-06-22 17:05:42 +02:00
cypher implemented a lockfree list 2015-09-22 01:13:42 +02:00
data_structures implemented a lockfree list 2015-09-22 01:04:13 +02:00
io/uv moved uv to io 2015-09-20 14:30:26 +02:00
memory implemented hazard pointer management 2015-09-15 21:34:52 +02:00
mvcc worked on mvcc, compiler and some utils, unfinished 2015-09-13 11:34:17 +02:00
speedy moved uv to io 2015-09-20 14:30:26 +02:00
storage worked on mvcc, compiler and some utils, unfinished 2015-09-13 11:34:17 +02:00
test changed sync directory location for spinlock test 2015-07-04 11:56:09 +02:00
threading fixed threadpool 2015-09-19 15:45:01 +02:00
utils fixed atomic counter to be seq_cst and added compile time checking of T to be integral 2015-09-13 12:56:30 +02:00
.arcconfig added arcconfig 2015-09-22 01:05:54 +02:00
.gitignore Lexertl git submodule 2015-09-17 21:37:53 +02:00
.gitmodules Lexertl git submodule 2015-09-17 21:37:53 +02:00
main.cpp worked on mvcc, compiler and some utils, unfinished 2015-09-13 11:34:17 +02:00
README.md a wild random checkpoint commit appeared 2015-08-30 01:12:46 +02:00
test_skip.cpp commit before os reinstall 2015-07-07 16:18:26 +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.5 or Gcc 4.8 (good c++11 support, especially lock free atomics)
  • boost 1.55 (or something, probably works with almost anything)
  • lexertl (2015-07-14)
  • lemon (parser generator)
  • catch (for compiling tests)

build