Managing Large Graphs on Multi-Cores with Graph Awareness
- Vijayan Prabhakaran ,
- Ming Wu ,
- Xuetian Weng ,
- Frank McSherry ,
- Lidong Zhou ,
- Maya Haridasan
USENIX Annual Technical Conference (USENIX ATC'12) |
Published by USENIX
Grace is a graph-aware, in-memory, transactional graph management system, specifically built for real-time queries and fast iterative computations. It is designed to run on large multi-cores, taking advantage of the inherent parallelism to improve its performance. Grace contains a number of graph-specific and multi-core-specific optimizations including graph partitioning, careful in-memory vertex ordering, updates batching, and load-balancing. It supports queries, searches, iterative computations, and transactional updates. Grace scales to large graphs (e.g., a Hotmail graph with 320 million vertices) and performs up to two orders of magnitude faster than commercial key-value stores and graph databases.