PaC-trees: supporting parallel and compressed purely-functional collections
Laxman Dhulipala, Guy E. Blelloch, Yan Gu, Yihan Sun
摘要
Many modern programming languages are shifting toward a functional style for collection interfaces such as sets, maps, and sequences. Functional interfaces offer many advantages, including being safe for parallelism and providing simple and lightweight snapshots. However, existing high-performance functional interfaces such as PAM, which are based on balanced purely-functional trees, incur large space overheads for large-scale data analysis due to storing every element in a separate node in a tree.
This paper presents PaC-trees, a purely-functional data structure supporting functional interfaces for sets, maps, and sequences that provides a significant reduction in space over existing approaches. A PaC-tree is a balanced binary search tree which blocks the leaves and compresses the blocks using arrays. We provide novel techniques for compressing and uncompressing the blocks which yield practical parallel functional algorithms for a broad set of operations on PaCtrees such as union, intersection, filter, reduction, and range queries which are both theoretically and practically efficient.
Using PaC-trees we designed CPAM, a C++ library that implements the full functionality of PAM, while offering significant extra functionality for compression. CPAM consistently matches or outperforms PAM on a set of microbenchmarks on sets, maps, and sequences while using about a quarter of the space. On applications including inverted indices, 2D range queries, and 1D interval queries, CPAM is competitive with or faster than PAM, while using 2.1-7.8x less space. For static and streaming graph processing, CPAM offers 1.6x faster batch updates while using 1.3-2.6x less space than the state-of-the-art graph processing system Aspen.
Recent work [52] has developed a purely functional library, PAM, for representing sequences, ordered sets, ordered maps, and augmented maps (defined in [52]) using balanced trees, called P-trees. P-trees use path copying to perform updates, supporting functional updates at a reasonably low cost (e.g., 𝑂 (log 𝑛) per point update). However they come at a cost of high space usage-every element requires a node in the tree. This is particularly problematic for large-scale data analysis, since in large-systems memory is often the dominating cost.
In this paper we present Parallel Compressed trees (PaCtrees): a purely-functional data structure for supporting a similar functionality as P-trees but with significant reduction in space-up to an order of magnitude (see Fig. 1). Our approach is based on blocking the leaves and compressing the blocks using arrays (see Fig. 4). We present innovative techniques for compressing and uncompressing the blocks 1
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper16
- Hierarchical Agglomerative Graph Clustering in Poly-Logarithmic DepthLaxman Dhulipala, David Eisenstat, Jakub Lacki, Vahab Mirrokni 等NeurIPS 2022 · 被引用 24 次
- Spruce: a Fast yet Space-saving Structure for Dynamic Graph StorageJifan Shi, Biao Wang, Yun XuSIGMOD 2024 · 被引用 19 次
- LSGraph: A Locality-centric High-performance Streaming Graph EngineHao Qi, Yiyang Wu, Ligang He, Yu Zhang 等EuroSys 2024 · 被引用 15 次
- BP-tree: Overcoming the Point-Range Operation Tradeoff for In-Memory B-treesHelen Xu, Amanda Li, Brian Wheatman, Manoj Marneni 等VLDB 2023 · 被引用 13 次
- TeraHAC: Hierarchical Agglomerative Clustering of Trillion-Edge GraphsLaxman Dhulipala, Jakub Lacki, Jason Lee, Vahab MirrokniSIGMOD 2024 · 被引用 11 次
它引用的顶会 Paper2
- Constant-time snapshots with applications to concurrent data structuresYuanhao Wei, Naama Ben-David, Guy E. Blelloch, Panagiota Fatourou 等PPoPP 2021 · 被引用 37 次
- On Supporting Efficient Snapshot Isolation for Hybrid Workloads with Multi-Versioned IndexesYihan Sun, Guy E. Blelloch, Wan Shen Lim, Andrew PavloVLDB 2020 · 被引用 37 次
相关 Paper
- CPMA: An Efficient Batch-Parallel Compressed Set Without PointersBrian Wheatman, Randal C. Burns, Aydin Buluç, Helen XuPPoPP 2024 · 被引用 7 次
- UFO Trees: Practical and Provably-Efficient Parallel Batch-Dynamic TreesQuinten De Man, Atharva Sharma, Kishen N. Gowda, Laxman DhulipalaPPoPP 2026 · 被引用 1 次
- PACTree: A High Performance Persistent Range Index Using PAC GuidelinesWook-Hee Kim, Madhava Krishnan Ramanathan, Xinwei Fu, Sanidhya Kashyap 等SOSP 2021 · 被引用 61 次
- Concurrent Path-Copying Update to Tree StructuresGuanhao Hou, Dechuang Chen, Qintian Guo, Fangyuan Zhang 等SIGMOD 2026
- PathCAS: an efficient middle ground for concurrent search data structuresTrevor Brown, William Sigouin, Dan AlistarhPPoPP 2022 · 被引用 4 次
