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.
翻译:动态图建模了许多现实应用,随着其规模增长,高效存储与更新变得至关重要。本文提出RadixGraph,一种用于动态图存储的快速且内存高效的数据结构。RadixGraph采用精心设计的基于基数树的顶点索引,在所有基于指针数组的基数树中实现了查询效率与空间占用的最优权衡。对于边存储,它采用混合快照-日志架构,可实现均摊$O(1)$的更新时间。RadixGraph支持每秒数百万次并发更新,同时在图分析任务中保持具有竞争力的性能。实验结果表明,在不同数据集上摄入图更新时,RadixGraph相比性能最优的基线方法最高可提升$16.27\times$,并平均降低$40.1\%$的内存使用量。RadixGraph已在https://github.com/ForwardStar/RadixGraph开源。