Open-source graph database, built for real-time streaming data, compatible with Neo4j.
cyphergraphgraph-algorithmsgraph-analysisgraph-databasekafkakafka-streamsnosqlopencypherstream-processingstreaming-data
Summary: TransactionReplicator replicates transactions on follower machines in HA memgraph. Our DB accessor API doesn't provide us with the functionality to begin transactions with non-increasing ids. This is why the `TransactionReplicator` uses a internal map that maps tx ids from the leader node to transactions on the follower node (whose id doesn't have to match the leaders tx id). If the leader has the following transaction timeline: ``` L tx1 | | tx2 | | | | | | | | | | | tx2 | | | | tx1 ``` `tx2` will commit first and will be replicated. When applying `tx2` on follower nodes, they will start a new transaction with tx id `1`. When `tx1` starts replicating, followers will start a new transaction with tx id `2`. And this is wehre `TransactionReplicator` kicks in. Reviewers: ipaljak Reviewed By: ipaljak Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1775 |
||
---|---|---|
cmake | ||
config | ||
customers | ||
docs | ||
experimental | ||
libs | ||
poc | ||
release | ||
src | ||
tests | ||
tools | ||
.arcconfig | ||
.clang-format | ||
.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