Open-source graph database, built for real-time streaming data, compatible with Neo4j.
cyphergraphgraph-algorithmsgraph-analysisgraph-databasekafkakafka-streamsnosqlopencypherstream-processingstreaming-data
9a94205a07
Summary: Most instances of `@throw std::bad_alloc` are left unexplained as these functions perform general heap allocations are it's obvious from the function name that it will do so. Basically anything with `Create`, `Make` or `Build` implies allocations. Additionally, which parts exactly perform allocations are an implementation detail. Functions which do unexpected heap allocations have the reason stated in the documentation, these functions typically have exactly one spot which could raise such an exception. Some functions are marked as `noexcept`, these are usually "special functions" such as constructors and operators. This could potentially improve performance because STL may use API overloads that work faster with `noexcept` stuff. Remaining non-throwing functions aren't marked as `noexcept` as that wasn't our practice nor is common in our codebase. On the other hand, if we continue enforcing the documentation of thrown exceptions, perhaps we should start using `noexcept`. Reviewers: mferencevic, ipaljak Reviewed By: mferencevic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D2350 |
||
---|---|---|
cmake | ||
config | ||
customers | ||
docs | ||
environment | ||
experimental | ||
libs | ||
poc | ||
release | ||
src | ||
tests | ||
tools | ||
.arcconfig | ||
.arclint | ||
.clang-format | ||
.clang-tidy | ||
.gdbinit | ||
.gitignore | ||
.ycm_extra_conf.py | ||
apollo_archives.py | ||
apollo_archives.yaml | ||
apollo_build.yaml | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
Doxyfile | ||
Doxylogo.png | ||
init | ||
README.md |
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