Affiliation:
1. University of Science and Technology of China, Hefei, Anhui, China
Abstract
Dynamic graphs have been gaining increasing popularity across various application domains. With the growing size of these graphs, the update performance as well as space occupancy is becoming a crucial aspect of dynamic graph storage. Although existing dynamic graph systems can handle massive streaming updates (e.g., insertions and deletions), they cannot achieve both high throughput and low memory footprint. Drawing inspiration from the basic operations of the van Emde Boas (vEB) tree in double-logarithmic time, we designed Spruce, a high-performance yet space-saving in-memory structure to store dynamic graphs. Spruce uses a compact representation to construct the tree-like multilevel structure, which shares the common prefixes of vertices and has no merging or splitting of nodes to achieve the requirements of low memory consumption and high-efficiency dynamic operations. Furthermore, Spruce incorporates a read-optimized concurrency protocol, which refines ROWEX and Optimistic Locking, to facilitate efficient simultaneous read/write operations. Our experiment demonstrates that compared to Sortledton (the best of competitors), Spruce is up to 2.4X faster in ingesting graph updates, while saving up to 38.5% of memory space. As for graph analytics, Spruce shows high adaptability to different analytical workloads, and achieves comparable performance to other state-of-the-art dynamic graph structures.
Funder
National Nature Science Foundation of China
111 Project 2.0
Publisher
Association for Computing Machinery (ACM)
Reference75 articles.
1. 2015. TITAN: Distributed Graph Database. https://titan.thinkaurelius.com.
2. 2020. OrientDB Community. https://orientdb.org.
3. 2022. Neo4j Graph Database Platform. https://neo4j.com/product/neo4j-graph-database.
4. Real time discovery of dense clusters in highly dynamic graphs
5. Parallel Longest Increasing Subsequence and van Emde Boas Trees