Open-source graph database, built for real-time streaming data, compatible with Neo4j.
cyphergraphgraph-algorithmsgraph-analysisgraph-databasekafkakafka-streamsnosqlopencypherstream-processingstreaming-data
This implements the initial version of synchronous replication. Currently, only one replica is supported and that isn't configurable. To run the main instance use the following command: ``` ./memgraph \ --main \ --data-directory main-data \ --storage-properties-on-edges \ --storage-wal-enabled \ --storage-snapshot-interval-sec 300 ``` To run the replica instance use the following command: ``` ./memgraph \ --replica \ --data-directory replica-data \ --storage-properties-on-edges \ --bolt-port 7688 ``` You can then write/read data to Bolt port 7687 (the main instance) and also you can read the data from the replica instance using Bolt port 7688. NOTE: The main instance *must* be started without any data and the replica *must* be started before any data is added to the main instance. * Add basic synchronous replication test * Using RWLock for replication stuff Co-authored-by: Matej Ferencevic <matej.ferencevic@memgraph.io> Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io> |
||
---|---|---|
.githooks | ||
.github/workflows | ||
cmake | ||
config | ||
docs | ||
environment | ||
include | ||
libs | ||
query_modules | ||
release | ||
src | ||
tests | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.gdbinit | ||
.gitignore | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
CODEOWNERS | ||
Doxyfile | ||
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.
Development Documentation
Feature Specifications
Each prominent Memgraph feature requires a feature specification. The purpose of the feature specification is to have a base for discussing all aspects of the feature. Elements of feature specifications should be:
- High-level context.
- Interface.
- User stories. Usage from the end-user perspective. In the case of a library, that should be cases on how to use the programming interface. In the case of a shell script, that should be cases on how to use flags.
- Discussion about concurrency, memory management, error management.
- Any other essential functional or non-functional requirements.
- Test and benchmark strategy.
- Possible future changes/improvements/extensions.
- Security concerns.
- Additional and/or optional implementation details.
It's crucial to keep feature spec up-to-date with the implementation. Take a look at the list of feature specifications to learn more about powerful Memgraph features.
User Documentation
Memgraph user documentation is maintained within docs repository. The documentation is also available on GitBook.