4

I am currently researching Memgraph, and I have a few questions:

1) Do you provide replication and sharding/partitioning of data?

2) Can queries be parallelized to allow larger analytics queries to be faster?

3) Are edges stored with the vertex, or is there some efficient way to extract an adjacency list?

4) Are properties stored with the vertex and edge? I guess both ways can have performance benefits and deficits.

Thanks for your help, Emanuel

1 Answers1

1

1) Yes, distributed version of Memgraph partitions graph across the cluster of machines. Partitioning isn't a part of Memgraph community edition that can be downloaded at https://memgraph.com/download because it's still in private beta phase. If you are willing to give it a try let me know.

2) Memgraph started as a transactional DBMS. But, we are adding more and more analytical capabilities because a lot of people looking for analytics on top of transactional data. Doing graph analytics at scale is hard because every single algorithm requires a unique approach. Distributed implementation of BFS is an example. Implementation runs the query across the cluster in a parallel manner with syncs when needed.

3) Storage contains the edges within a specialized data structure. Memgraph doesn't have global adjacency index exposed yet, but it's possible to get the adjacency list by running regular openCypher query. Getting all neighbors of a node is very efficient because node lookup is fast and every node has a list of edges that store info about the neighbors.

4) Both nodes and edges store properties. We are continually working on performance and usability improvements.

buda
  • 460
  • 4
  • 8