Memgraph is a native fully distributed in-memory graph database built to handle real-time use-cases at enterprise scale. It supports strongly-consistent ACID transactions, and uses the standardized openCypher query language. The company has also developed various algorithms that are shipped with the database, such as breadth first search and weighted shortest path. Memgraph is available on-premises or in-cloud, and it is offered in either a single node or distributed version.
Memgraph features a distributed query planning and execution engine. Each plan is divided into two: a plan that will be executed on the machine where the query is received and a plan that will be executed on the other machines. Nodes are allowed to exchange data during the execution process.
Multi-version Concurrency Control (MVCC)
Memgraph features full ACID-compliant transactions and strong consistency.
Memgraph's underlying data model is the property graph model. A property graph consists of nodes and relationships (or vertices and edges). Nodes can hold any number of properties (key-value pairs) and can be assigned labels that represent their roles within a particular domain. For example, a node with a label "person" could have properties such as "name" or "age." Relationships are directed connections between two nodes and contain properties (just like nodes) as well as a single edge type. For example, a relationship in a graph of people can have the edge type "friend of," and a property "since."
Although Memgraph is an in-memory database by default, it offers an option to store a certain amount of data on disk. The user can pass a list of properties they wish to keep stored on disk via the command line. It is recommended to use this feature on large, cold properties, i.e., properties that are rarely accessed. The user cannot change the storage location of a property while Memgraph is running. The user can, however, reload their database from snapshot and provide a different list of properties to store on disk.