RadixGraph: A Fast, Space-Optimized Data Structure for Dynamic Graph Storage (Extended Version)
Haoxuan Xie, Junfeng Liu, Siqiang Luo, Kai Wang
TL;DR
RadixGraph tackles the challenge of in‑memory dynamic graph storage by introducing a space‑optimal vertex index (SORT) and a snapshot–log edge storage that jointly deliver fast updates and compact memory usage. The SORT index uses a data‑driven optimization to pick per‑layer fan‑outs in an l‑layer radix tree, achieving near‑linear space with $O(l)$ lookup costs, while the edge storage splits adjacency into a read‑only snapshot and an append‑only log, enabling amortized $O(1)$ edge updates via log compaction and producing an edge chain that supports traversal with minimal vertex lookups. The design is backed by MVCC support, latch‑free log appends, and a dynamic programming framework for SORT configuration, with empirical results showing up to $16.27\times$ faster updates and a $40.1\%$ memory reduction relative to strong baselines across real and synthetic graphs. Together, these innovations offer scalable, concurrent graph storage and analytics for very large dynamic graphs, with open‑source availability at the RadixGraph repository.
Abstract
Dynamic graphs model many real-world applications, and as their sizes grow, efficiently storing and updating them becomes critical. We present RadixGraph, a fast and memory-efficient data structure for dynamic graph storage. RadixGraph features a carefully designed radix-tree-based vertex index that strikes an optimal trade-off between query efficiency and space among all pointer-array-based radix trees. For edge storage, it employs a hybrid snapshot-log architecture that enables amortized $O(1)$ update time. RadixGraph supports millions of concurrent updates per second while maintaining competitive performance for graph analytics. Experimental results show that RadixGraph outperforms the most performant baseline by up to $16.27\times$ across various datasets in ingesting graph updates, and reduces memory usage by an average of $40.1\%$. RadixGraph is open-source at https://github.com/ForwardStar/RadixGraph.
