[Paper Review] FlashGraph: processing billion-node graphs on an array of commodity SSDs
FlashGraph enables efficient processing of billion-node graphs on commodity SSDs by storing vertex states in memory and edge lists on SSDs, using a user-space SSD file system to achieve high IOPS and parallel I/O. It matches up to 80% of in-memory performance and outperforms PowerGraph by minimizing I/O overhead through request merging and latency hiding.
Graph analysis performs many random reads and writes, thus, these workloads are typically performed in memory. Traditionally, analyzing large graphs requires a cluster of machines so the aggregate memory exceeds the graph size. We demonstrate that a multicore server can process graphs with billions of vertices and hundreds of billions of edges, utilizing commodity SSDs with minimal performance loss. We do so by implementing a graph-processing engine on top of a user-space SSD file system designed for high IOPS and extreme parallelism. Our semi-external memory graph engine called FlashGraph stores vertex state in memory and edge lists on SSDs. It hides latency by overlapping computation with I/O. To save I/O bandwidth, FlashGraph only accesses edge lists requested by applications from SSDs; to increase I/O throughput and reduce CPU overhead for I/O, it conservatively merges I/O requests. These designs maximize performance for applications with different I/O characteristics. FlashGraph exposes a general and flexible vertex-centric programming interface that can express a wide variety of graph algorithms and their optimizations. We demonstrate that FlashGraph in semi-external memory performs many algorithms with performance up to 80% of its in-memory implementation and significantly outperforms PowerGraph, a popular distributed in-memory graph engine.
Motivation & Objective
- Address the scalability bottleneck of in-memory graph processing for billion-node graphs.
- Enable large-scale graph analysis on a single multicore server instead of a cluster.
- Reduce reliance on expensive main memory by leveraging commodity SSDs effectively.
- Minimize I/O overhead and CPU cost while maintaining high throughput for diverse graph workloads.
- Design a flexible, vertex-centric programming interface for expressing various graph algorithms.
Proposed method
- Implement a user-space SSD file system optimized for high IOPS and extreme parallelism to support low-latency I/O operations.
- Store vertex states in main memory and edge lists on SSDs, enabling semi-external memory processing.
- Overlap computation with I/O to hide latency, improving overall throughput.
- Limit SSD access to only requested edge lists, reducing I/O bandwidth usage.
- Conservatively merge I/O requests to increase throughput and reduce CPU overhead.
- Expose a general vertex-centric programming interface to express diverse graph algorithms and optimizations.
Experimental results
Research questions
- RQ1Can a single-server system with commodity SSDs process billion-node graphs efficiently without requiring in-memory storage?
- RQ2How effectively can I/O latency be hidden in graph processing using overlapping computation and I/O?
- RQ3To what extent can I/O bandwidth be reduced by accessing only requested edge lists?
- RQ4How does conservative I/O request merging impact throughput and CPU overhead in graph workloads?
- RQ5How does FlashGraph's performance compare to in-memory systems and existing distributed engines like PowerGraph?
Key findings
- FlashGraph achieves up to 80% of the performance of its in-memory counterpart on various graph algorithms.
- FlashGraph significantly outperforms PowerGraph, a leading distributed in-memory graph engine, on the same workloads.
- The system effectively hides I/O latency by overlapping computation with I/O operations.
- By accessing only requested edge lists, FlashGraph reduces unnecessary I/O bandwidth consumption.
- Conservative merging of I/O requests increases I/O throughput while minimizing CPU overhead.
- The semi-external memory design enables processing of graphs with billions of vertices and hundreds of billions of edges on a single server.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.