TY - JOUR
T1 - GraphZeppelin
T2 - How to Find Connected Components (Even When Graphs Are Dense, Dynamic, and Massive)
AU - Tench, David
AU - West, Evan
AU - Zhang, Victor
AU - Bender, Michael A.
AU - Chowdhury, Abiyaz
AU - Delayo, Daniel
AU - Dellas, J. Ahmed
AU - Farach-Colton, Martín
AU - Seip, Tyler
AU - Zhang, Kenny
N1 - Publisher Copyright:
© 2024 Copyright held by the owner/author(s). Publication rights licensed to ACM.
PY - 2024/5/16
Y1 - 2024/5/16
N2 - Finding the connected components of a graph is a fundamental problem with uses throughout computer science and engineering. The task of computing connected components becomes more difficult when graphs are very large, or when they are dynamic, meaning the edge set changes over time subject to a stream of edge insertions and deletions. A natural approach to computing the connected components problem on a large, dynamic graph stream is to buy enough RAM to store the entire graph. However, the requirement that the graph fit in RAM is an inherent limitation of this approach and is prohibitive for very large graphs. Thus, there is an unmet need for systems that can process dense dynamic graphs, especially when those graphs are larger than available RAM. We present a new high-performance streaming graph-processing system for computing the connected components of a graph. This system, which we call GraphZeppelin, uses new linear sketching data structures (CubeSketch) to solve the streaming connected components problem and as a result requires space asymptotically smaller than the space required for a lossless representation of the graph. GraphZeppelin is optimized for massive dense graphs: GraphZeppelin can process millions of edge updates (both insertions and deletions) per second, even when the underlying graph is far too large to fit in available RAM. As a result GraphZeppelin vastly increases the scale of graphs that can be processed.
AB - Finding the connected components of a graph is a fundamental problem with uses throughout computer science and engineering. The task of computing connected components becomes more difficult when graphs are very large, or when they are dynamic, meaning the edge set changes over time subject to a stream of edge insertions and deletions. A natural approach to computing the connected components problem on a large, dynamic graph stream is to buy enough RAM to store the entire graph. However, the requirement that the graph fit in RAM is an inherent limitation of this approach and is prohibitive for very large graphs. Thus, there is an unmet need for systems that can process dense dynamic graphs, especially when those graphs are larger than available RAM. We present a new high-performance streaming graph-processing system for computing the connected components of a graph. This system, which we call GraphZeppelin, uses new linear sketching data structures (CubeSketch) to solve the streaming connected components problem and as a result requires space asymptotically smaller than the space required for a lossless representation of the graph. GraphZeppelin is optimized for massive dense graphs: GraphZeppelin can process millions of edge updates (both insertions and deletions) per second, even when the underlying graph is far too large to fit in available RAM. As a result GraphZeppelin vastly increases the scale of graphs that can be processed.
KW - external memory
KW - Linear sketching
KW - streaming algorithms
UR - http://www.scopus.com/inward/record.url?scp=85205027748&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85205027748&partnerID=8YFLogxK
U2 - 10.1145/3643846
DO - 10.1145/3643846
M3 - Article
AN - SCOPUS:85205027748
SN - 0362-5915
VL - 49
JO - ACM Transactions on Database Systems
JF - ACM Transactions on Database Systems
IS - 3
M1 - 9
ER -