Terrace: A Hierarchical Graph Container for Skewed Dynamic Graphs
Prashant Pandey, Brian Wheatman, Helen Xu, Aydin Buluç
Abstract
Various applications model problems as streaming graphs, which need to quickly apply a stream of updates and run algorithms on the updated graph. Furthermore, many dynamic real-world graphs, such as social networks, follow a skewed distribution of vertex degrees, where there are a few high-degree vertices and many low-degree vertices.
Existing static graph-processing systems optimized for graph skewness achieve high performance and low space usage by preprocessing a cache-efficient graph partitioning based on vertex degree. In the streaming setting, the whole graph is not available upfront, however, so finding an optimal partitioning is not feasible in the presence of updates. As a result, existing streaming graph-processing systems take a "one-size-fits-all" approach, leaving performance on the table.
We present Terrace, a system for streaming graphs that uses a hierarchical data structure design to store a vertex's neighbors in different data structures depending on the degree of the vertex. This multi-level structure enables Terrace to dynamically partition vertices based on their degrees and adapt to skewness in the underlying graph.
Our experiments show that Terrace supports faster batch insertions for batch sizes up to 1M when compared to Aspen, a state-ofthe-art graph streaming system. On graph query algorithms, Terrace is between 1.7×-2.6× faster than Aspen and between 0.5×-1.3× as fast as Ligra, a state-of-the-art static graph-processing system.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Cited by top-tier papers27
- Sortledton: a universal, transactional graph data structurePer Fuchs, Jana Giceva, Domagoj MarganVLDB 2022 · 46 citations
- LSMGraph: A High-Performance Dynamic Graph Storage System with Multi-Level CSRSong Yu, Shufeng Gong, Qian Tao, Sijie Shen et al.SIGMOD 2025 · 25 citations
- Spruce: a Fast yet Space-saving Structure for Dynamic Graph StorageJifan Shi, Biao Wang, Yun XuSIGMOD 2024 · 19 citations
- LSGraph: A Locality-centric High-performance Streaming Graph EngineHao Qi, Yiyang Wu, Ligang He, Yu Zhang et al.EuroSys 2024 · 15 citations
- BP-tree: Overcoming the Point-Range Operation Tradeoff for In-Memory B-treesHelen Xu, Amanda Li, Brian Wheatman, Manoj Marneni et al.VLDB 2023 · 13 citations
Builds on3
- Teseo and the Analysis of Structural Dynamic GraphsDean De Leo, Peter BonczVLDB 2021 · 65 citations
- Parallel Batch-Dynamic Graphs: Algorithms and Lower BoundsLaxman Dhulipala, David Durfee, Janardhan Kulkarni, Richard Peng et al.SODA 2020 · 28 citations
- Dynamic Graph Algorithms with Batch Updates in the Massively Parallel Computation ModelKrzysztof Nowicki, Krzysztof OnakSODA 2021 · 5 citations
Related papers
- EIGA: elastic and scalable dynamic graph analysisKasimir Gabert, Kaan Sancak, M. Yusuf Özkaya, Ali Pinar et al.SC 2021 · 5 citations
- Hybrid Edge Partitioner: Partitioning Large Power-Law Graphs under Memory ConstraintsRuben Mayer, Hans-Arno JacobsenSIGMOD 2021 · 29 citations
- GraphZeppelin: Storage-Friendly Sketching for Connected Components on Dynamic Graph StreamsDavid Tench, Evan West, Victor Zhang, Michael A. Bender et al.SIGMOD 2022 · 5 citations
- Pensieve: Skewness-Aware Version Switching for Efficient Graph ProcessingTangwei Ying, Hanhua Chen, Hai JinSIGMOD 2020 · 12 citations
- Improving Streaming Graph Processing Performance using Input KnowledgeAbanti Basak, Zheng Qu, Jilan Lin, Alaa R. Alameldeen et al.MICRO 2021 · 20 citations
