Skip to main content
QUICK REVIEW

[论文解读] Log(Graph): A Near-Optimal High-Performance Graph Representation

Maciej Besta, Dimitri Stanojevic|arXiv (Cornell University)|Oct 29, 2020
Graph Theory and Algorithms参考文献 85被引用 5
一句话总结

Log(Graph) 是一种接近最优的图表示方法,通过使用按位操作和简明数据结构,以对数大小(即理论存储下限)对图元素进行编码,实现高数据压缩率和低解压缩开销。与 GAPBS 相比,它将图存储减少了 20–35%,同时保持或超越其性能表现;由于解压缩成本极低,其图处理速度相比 WebGraph 最快可提升 2 倍。

ABSTRACT

Today's graphs used in domains such as machine learning or social network analysis may contain hundreds of billions of edges. Yet, they are not necessarily stored efficiently, and standard graph representations such as adjacency lists waste a significant number of bits while graph compression schemes such as WebGraph often require time-consuming decompression. To address this, we propose Log(Graph): a graph representation that combines high compression ratios with very low-overhead decompression to enable cheaper and faster graph processing. The key idea is to encode a graph so that the parts of the representation approach or match the respective storage lower bounds. We call our approach "graph logarithmization" because these bounds are usually logarithmic. Our high-performance Log(Graph) implementation based on modern bitwise operations and state-of-the-art succinct data structures achieves high compression ratios as well as performance. For example, compared to the tuned Graph Algorithm Processing Benchmark Suite (GAPBS), it reduces graph sizes by 20-35% while matching GAPBS' performance or even delivering speedups due to reducing amounts of transferred data. It approaches the compression ratio of the established WebGraph compression library while enabling speedups of up to more than 2x. Log(Graph) can improve the design of various graph processing engines or libraries on single NUMA nodes as well as distributed-memory systems.

研究动机与目标

  • 解决标准图表示和压缩方案中浪费比特或在图处理过程中需要高成本解压缩的低效问题。
  • 在不牺牲性能的前提下减小图的存储大小,尤其针对具有数千亿条边的大规模图。
  • 设计一种图表示方法,使其接近图元素(如顶点 ID、偏移量和邻接数据)的理论存储下限。
  • 通过最小化解压缩成本,实现对图数据的快速、低开销访问,同时保持高数据压缩率。
  • 通过优化布局和编码方式,提升单节点和分布式内存系统上图处理引擎的效率。

提出的方法

  • Log(Graph) 应用‘图对数化’——即根据其基数使用最少的比特数对每个图元素进行编码,亦即对集合 S 编码为 ⌈log|S|⌉ 位。
  • 利用现代按位操作高效提取对数编码元素中的数据,从而最小化解压缩开销。
  • 采用整数线性规划(ILP)启发式方法对顶点 ID 进行重排序,以减小邻接数组的总大小。
  • 利用简明数据结构实现偏移数组,使其存储接近理论下限,并支持常数时间访问。
  • 集成基于边切分(EC)和顶点切分(VC)的分区方案,优先选择 EC,因其在 VC 中因影子指针带来的存储开销更低。
  • 采用混合标签方法(POD/CMB),以最小化标签差异,从而提升压缩效率和访问效率。

实验结果

研究问题

  • RQ1图表示能否在实现接近最优压缩率的同时,保持图处理工作负载下的低解压缩开销?
  • RQ2基于信息论下限的图元素对数编码(如根据其基数)如何影响存储大小与性能表现?
  • RQ3基于 ILP 的顶点重排序在多大程度上可减小图表示中邻接数组的大小?
  • RQ4在考虑存储与访问开销的前提下,边切分(EC)与顶点切分(VC)在图布局中的性能权衡如何?
  • RQ5对偏移数组使用简明数据结构能否将空间复杂度从 O(n log n) 降低到接近理论最优下限,同时实现快速访问?

主要发现

  • 与调优后的 GAPBS 实现相比,Log(Graph) 将图存储减少了 20–35%,同时保持或提升了其性能表现。
  • 其压缩率与 WebGraph 几乎相同,但由于解压缩开销极低,图处理速度最快可提升 2 倍。
  • 采用基于 ILP 的顶点重排序可减小邻接数组中的标签差异,相比 RB 提升压缩率 5–10%,相比 DM 提升 30–40%。
  • 对偏移数组使用简明数据结构,可将空间复杂度渐近地从 O(n log n) 降低到接近理论最优下限,同时支持常数时间访问。
  • 顶点切分(VCs)产生的切分比边切分(ECs)更小,但 VC 中影子指针带来的存储开销削弱了其优势,因此 EC 更具实用性。
  • 放松分区平衡度(最多达 D=10%)仅导致切分大小和最终存储量变化约 1%,表明系统对不平衡具有较强鲁棒性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。