Skip to main content
QUICK REVIEW

[论文解读] GraphX: Unifying Data-Parallel and Graph-Parallel Analytics

Reynold Xin, Daniel Crankshaw|arXiv (Cornell University)|Feb 11, 2014
Graph Theory and Algorithms参考文献 22被引用 57
一句话总结

GraphX 通过将图建模为顶点和边的集合,在单一框架中统一了数据并行与图并行计算,实现了在单一系统内高效执行图算法和数据并行操作。其性能可与专用图系统相媲美,同时通过最小化数据移动和提升开发人员生产力,支持端到端的图分析流水线。

ABSTRACT

From social networks to language modeling, the growing scale and importance of graph data has driven the development of numerous new graph-parallel systems (e.g., Pregel, GraphLab). By restricting the computation that can be expressed and introducing new techniques to partition and distribute the graph, these systems can efficiently execute iterative graph algorithms orders of magnitude faster than more general data-parallel systems. However, the same restrictions that enable the performance gains also make it difficult to express many of the important stages in a typical graph-analytics pipeline: constructing the graph, modifying its structure, or expressing computation that spans multiple graphs. As a consequence, existing graph analytics pipelines compose graph-parallel and data-parallel systems using external storage systems, leading to extensive data movement and complicated programming model. To address these challenges we introduce GraphX, a distributed graph computation framework that unifies graph-parallel and data-parallel computation. GraphX provides a small, core set of graph-parallel operators expressive enough to implement the Pregel and PowerGraph abstractions, yet simple enough to be cast in relational algebra. GraphX uses a collection of query optimization techniques such as automatic join rewrites to efficiently implement these graph-parallel operators. We evaluate GraphX on real-world graphs and workloads and demonstrate that GraphX achieves comparable performance as specialized graph computation systems, while outperforming them in end-to-end graph pipelines. Moreover, GraphX achieves a balance between expressiveness, performance, and ease of use.

研究动机与目标

  • 解决在图分析流水线中组合独立的数据并行与图并行系统时存在的效率低下和复杂性问题。
  • 将图并行与数据并行计算统一为一个单一、可组合的框架,避免数据重复或移动。
  • 设计一组最小但表达力强的图操作符,能够表达 Pregel 和 PowerGraph 抽象,同时与关系代数保持兼容。
  • 在单一系统内实现端到端的图分析——包括构建、转换、计算和分析。
  • 利用现有的数据并行优化技术(如连接重写和增量视图维护)来实现高效的图计算。

提出的方法

  • GraphX 将图建模为分布式、水平分区的数据集中的顶点和边集合,并使用辅助索引结构实现高效访问。
  • 它引入了一组核心图并行操作符,包括 subgraph 和 mrTriplets,支持以边为中心的计算与转换。
  • 图计算被表达为一系列关系代数操作,特别是连接和聚合,映射到 GAS 抽象的 Scatter-Gather 阶段。
  • 系统通过自动连接重写和分布式路由表来优化连接性能,模拟分布式数据库中的连接站点选择。
  • 它应用增量视图维护技术,复用迭代图算法中的中间结果,减少冗余计算。
  • GraphX 与数据并行引擎(如 Spark)集成,实现对相同数据上数据并行与图并行操作的无缝组合。

实验结果

研究问题

  • RQ1统一系统能否在不牺牲性能的前提下,高效表达数据并行和图并行工作负载?
  • RQ2能否设计出一组最小的图操作符,以表达现有的图并行抽象(如 Pregel 和 PowerGraph),同时与关系代数保持兼容?
  • RQ3数据并行系统中的优化技术(如连接重写和增量视图维护)在多大程度上可被适配以加速图计算?
  • RQ4在端到端图分析流水线中,统一系统与专用图并行系统的性能相比如何?
  • RQ5图并行与数据并行抽象的集成能否在真实世界的图分析工作流中减少数据移动并提升开发人员生产力?

主要发现

  • 在 PageRank 和连通分量等迭代图算法上,GraphX 的性能可与 Pregel 和 PowerGraph 等专用图并行系统相媲美。
  • 在端到端图分析流水线中,GraphX 的性能优于依赖外部存储在数据并行与图并行阶段之间传递数据的组合系统。
  • 该系统实现了数据并行与图并行操作在单一框架内的无缝组合,减少了数据洗牌和自定义数据交换格式的需求。
  • GraphX 仅使用一组核心操作符,成功实现了 Pregel 和 PowerGraph 抽象,证明了其窄腰设计的表达能力。
  • 关系代数与连接优化技术的集成,使得图计算能够高效执行,尤其体现在跨迭代复用中间连接结果方面。
  • 一位工业用户报告称,在部署 GraphX 后,其图分析流水线的性能提升了两个数量级,验证了其在真实场景中的性能优势。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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