Managing Large Graphs on Multi-Cores with Graph Awareness

  • Vijayan Prabhakaran
  • Ming Wu
  • Xuetian Weng
  • Frank McSherry
  • 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.