flashgraph · research

FlashGraph

FlashGraph is a semi-external-memory graph engine that keeps vertex state in RAM and reads edge lists from SSDs through SAFS.

The FAST 2015 design overlaps host computation with I/O. It requests needed edge lists and merges requests for the same or adjacent pages; user tasks consume the SAFS page cache without separate application read buffers. [1]

The programming guide separates run, run_on_vertex and run_on_message. An adjacency-list request is followed by a callback when its data is ready; an inactive vertex can still receive messages. Iteration completion requires both an empty active set and no pending requests. [2]

The public implementation is part of FlashX, alongside the distinct FlashMatrix engine; the repository provides source under Apache-2.0. [3]

Relations

related
Solid-state drive (SSD), I/O request size

Limitations

  • RAM must still accommodate vertex state, the graph index, runtime status and message queues, alongside the page cache. [1]
  • Callback execution order is not guaranteed; algorithm authors must preserve vertex-state correctness. [2]

Citations

  1. Zheng et al. FlashGraph: Processing Billion-Node Graphs on an Array of Commodity SSDs. FAST 2015, pp. 45-58; sections 3.1-3.6, 5. (accessed 2026-11-14)
  2. FlashX: The FlashGraph User Guide. Vertex program, interaction with other vertices and adjacency-list access. (accessed 2026-11-14)
  3. FlashX project: source, component boundaries and Apache-2.0 license. (accessed 2026-11-14)

Further reading

  1. Hesela: SSD architecture and application I/O trade-offs. (accessed 2026-11-14)
Sources & caveats
  • Primary-source review, not a reproduced FlashGraph benchmark. Historical performance comparisons are not modern-device guarantees.

JSON: /data/terms/flashgraph.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. FlashGraph. Hesela. 2026-11-14. https://hesela.dev/terms/flashgraph/