imGraph: A distributed in-memory graph database

Diverse applications including cyber security, social networks, protein networks, recommendation systems or citation networks work with inherently graph-structured data. The graphs modeling the data of these applications are large by nature so the efficient processing of them becomes challenging. In this paper we present imGraph, a graph system that addresses the challenge of efficient processing of large graphs by using a distributed in-memory storage. We use this type of storage to obtain fast random data access which is mostly required for graph exploration. imGraph uses a native graph data model to ease the implementation of graph algorithms. On top of it, we design and implement a traversal engine that achieves high performance by efficient memory access, distribution of the work load, and optimizations on network communications. We run a set of experiments on real graph datasets of different sizes to asses the performance of imGraph in relation to other graph systems. The results show that imGraph gets better performance on traversals on large graphs than its counterparts.

Link to the paper