Already used by everyone from solo developers to Fortune 500 enterprises, Memgraph 1.0 is now publicly available and production-ready. We’ve come a long way since writing the first line of code in summer 2016 and we’re proud to bring you what we believe to be a graph database that will make it easy for developers and data scientists to build and productionize high-performance graph applications.
We started this journey with the belief that there was a need for a graph database that could deliver three critical capabilities:
With this in mind, we build Memgraph. A high-performance, Cypher compatible graph database management system purposely engineered with the unique capability of supporting both transactional and analytical workloads. Built from the ground-up leveraging an in-memory first, durable, and redundant architecture, and a C/C++ implementation, Memgraph delivers low latency, high-throughput and maximum concurrency on industry-standard hardware.
Memgraph supports the Cypher query language through the openCypher project and is one of its major contributors and supporters. We have extended it to feature algorithms such as Breadth-First Search and Weighted Shortest Path.
Memgraph is wire compatible with Neo4j through the Bolt protocol and thus benefits from current and future compatibility with existing graph applications, tools and client libraries developed for major programming languages. Furthermore, Memgraph also offers a high-performance C/C++ Bolt client for when you want to squeeze every bit of performance.
Memgraph offers full support for ACID transaction semantics and achieves high throughput by using highly concurrent, and sometimes even lock-free, data structures and multi-version concurrency control (MVCC). As a result, writes never block reads and vice versa. Traditional databases manage concurrency with global locks, which results in some processes blocking others until they complete and release the lock. Memgraph’s implementation of MVCC provides a snapshot isolation level which offers better performance than serializability, and avoids most concurrency anomalies.
Additionally, Memgraph uses a highly concurrent skip list for indexing purposes. Skip lists represent an efficient technique for searching and manipulating data, delivering concurrency and performance benefits over other graph databases and disk-based databases, which use B-Trees to store every index.
Memgraph provides durability guarantees. A combination of periodic snapshotting and write-ahead logging (WAL), both synchronous (fsync before every commit) and asynchronous (periodic fsync) which ensures that data won’t be lost in the event of an underlying system failure.
Prior to version 1.0, Memgraph leveraged the RAFT consensus protocol to deliver high-available replication which worked great but had a few drawbacks on the performance side. Based on feedback from our users and clients, we have decided to switch supporting HA through streaming replication (similar to PostgreSQL) and automatic failover to ensure your application is always available while maintaining good performance. [Note: we’ll be releasing a detailed blog post describing how and why we picked this option]
To help you visualize your graph data and optimize your queries, we have built Memgraph Lab, a lightweight and intuitive visual user interface for developers
With Memgraph Lab you can:
Our engineering team has been hard at work for the past three years to ensure that Memgraph maintains the highest standards in terms of performance, reliability, and ease of use. With a great deal of feedback from our users and clients, Memgraph 1.0 comes with the following key features:
You can download the Memgraph’s community version for free here. However, if you don’t want to manage your deployment or are looking for something to run in production on-prem, Memgraph Enterprise and Memgraph Cloud offer the additional features you need.
Working at an enterprise-scale in production means that you have to ensure no downtime and robust security. This is why Memgraph Enterprise comes with high-availability replication and all the necessary security features including:
We understand that not everyone is excited about running and managing their own database deployment. Sometimes, you just want to focus on developing your application and not worry about anything else. We are happy to announce that Memgraph Cloud is now generally available and offers a fully-managed, cloud-hosted graph database-as-a-service supported by the engineering team behind Memgraph. Memgraph Cloud comes with most production features available in Memgraph Enterprise and we’re in the process of adding the missing ones in the next few months.
You can compare our commercial offerings here and shoot us a message if you need any help.
This 1.0 release is only the beginning for Memgraph, and we’re committed to bringing you a powerful, easy-to-use, and reliable graph database by continuing to expand our capabilities and keep you way ahead of the curve.
In the meantime, you can get started for free with Memgraph by downloading our community edition or try Memgraph Cloud. You can find our documentation here and if you have any questions or need any help you can post on our community forum.
Although we run 24h continuous testing and take extreme care to test Memgraph in different environments, using different workloads and various simulated failure events, we are aware that there will always be expected and unexpected issues. This is why we would love to get your feedback and are committed to investing significant resources in making Memgraph more robust, performant, and user-friendly.
Learn how by introducing a new storage engine, encoding and compressing properties on both nodes and edges, and leveraging skip lists as an indexing data structure, we were able to reduce memory usage by as much as 50% and improve throughput towards near-linear scalability.
How to build a Python web application for visualizing a Social Network Graph in Python with Docker, Flask and D3.js