Managing Large Graphs on Multi-Cores with Graph Awareness - Prabhakaran, Vijayan; Wu, Ming; Weng, Xuetian; McSherry, Frank; Zhou, Lidong; Haridasan, Maya (USENIX Annual Technical Conference (USENIX ATC'12), 2012)
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.