中文

GraphTango:一种用于高效流式图更新与分析的混合表示格式

数据结构与算法 2022-12-23 v1 软件工程

摘要

流式图处理涉及对随时间演化的图执行更新与分析。底层表示格式在很大程度上决定了这些更新与分析阶段的吞吐量。现有格式通常采用哈希表或邻接表的变体。然而,基于邻接表的方法在重尾图上表现不佳,而基于哈希的方法在短尾图上表现欠佳。我们提出了 GraphTango,一种混合格式,无论图的程度分布如何,都能提供优异的更新与分析吞吐量。GraphTango 根据顶点的度在三种不同格式间切换:i) 低度顶点将边与邻域元数据直接存储在一起,将访问限制于单一缓存行内;ii) 中度顶点使用邻接表;iii) 高度顶点同时使用哈希表与邻接表。在此情况下,邻接表在分析阶段提供快速遍历,而哈希表在更新阶段提供常数时间查找。我们通过设计一种基于开放寻址的哈希表进一步优化了性能,该哈希表充分利用每一个被获取的缓存行。此外,我们开发了一个线程局部无锁内存池,允许在多线程环境下快速增长/收缩邻接表与哈希表。我们借助 SAGA-Bench 框架对 GraphTango 进行了评估,并与另外四种表示格式进行比较。平均而言,GraphTango 相较次优格式提供了 4.5 倍更高的插入吞吐量、3.2 倍更高的删除吞吐量和 1.1 倍更高的分析吞吐量。此外,我们将 GraphTango 与最先进的图处理框架 DZiG 和 RisGraph 集成。与原始 DZiG 和原始 RisGraph 相比,[GraphTango + DZiG] 和 [GraphTango + RisGraph] 分别将平均批处理时间减少了 2.3 倍和 1.5 倍。

关键词

引用

@article{arxiv.2212.11935,
  title  = {GraphTango: A Hybrid Representation Format for Efficient Streaming Graph Updates and Analysis},
  author = {Alif Ahmed and Farzana Ahmed Siddique and Kevin Skadron},
  journal= {arXiv preprint arXiv:2212.11935},
  year   = {2022}
}