Spruce: a fast yet space-saving structure for dynamic graph storage
J Shi, B Wang, Y Xu - Proceedings of the ACM on Management of Data, 2024 - dl.acm.org
J Shi, B Wang, Y Xu
Proceedings of the ACM on Management of Data, 2024•dl.acm.orgDynamic 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 (eg, 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 …
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 (eg, 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 …
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.
