Open-source graph database, built for real-time streaming data, compatible with Neo4j.
Go to file
Teon Banek 98cbd2b500 Cleanup utils::File API
Summary:
Close the file descriptor in File destructor. This will prevent
accidental crashes during unexpected destructor calls. For example, if
an exception is thrown before the file is closed. File now takes
ownership of the descriptor. These changes now honor RAII idiom, which
should handle most of the peculiarities of C++.

Use optional value for TryOpenFile function, instead of returning a File
without a descriptor. It makes the failure state more semantically clear
to the API user.

Merge utils/filesystem with utils/file

The files aren't that big, and the naming is a bit confusing because
functions aren't really grouped for file and filesystem distinction.

Reviewers: mferencevic, mtomic

Reviewed By: mferencevic

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D1111
2018-01-16 15:38:12 +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 Refactor GraphDb 2018-01-12 16:47:24 +01:00
docs Remove Union from Upcoming Features 2017-12-22 15:24:05 +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 utils::File API 2018-01-16 15:38:12 +01:00
tests Cleanup utils::File API 2018-01-16 15:38:12 +01:00
tools Inline test data in the benchmark tests itself 2018-01-15 16:12:30 +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 Bump Memgraph version to 0.9 2017-12-18 10:37:31 +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