论文解读|TuGraph Analytics 流式图计算论文入选国际顶会 SIGMOD

简介: 蚂蚁流式图计算团队本次的论文 《GeaFlow: A Graph Extended and Accelerated Dataflow System》 被 SIGMOD 2023 收录,代表蚂蚁流式图计算团队的成果不仅在工业界有界广泛的应用,同时也在学术界得到进一步认可。

GeaFlow(品牌名TuGraph-Analytics) 已正式开源,欢迎大家关注!!! 欢迎给我们 Star 哦! GitHub👉https://github.com/TuGraph-family/tugraph-analytics
更多精彩内容,关注我们的博客 https://tugraph-analytics.github.io/


6月18日-23日,数据库国际顶会 2023 ACM SIGMOD 在美国西雅图举行,蚂蚁流式图计算团队一篇论文入选。

ACM SIGMOD 数据管理国际会议是由美国计算机协会(ACM) 数据管理专业委员会(SIGMOD) 发起,与 VLDB、ICDE 并称为数据库业界的三大顶级学术会议。
其收录论文代表了数据库领域的最高水平,也是未来数据库技术发展的重要风向标。

蚂蚁流式图计算团队本次的论文 《GeaFlow: A Graph Extended and Accelerated Dataflow System》 被 SIGMOD 2023 收录,代表蚂蚁流式图计算团队的成果不仅在工业界有界广泛的应用,同时也在学术界得到进一步认可。

tu1.png

图片注:GeaFlow 为蚂蚁流式图计算引擎 TuGraph Analytics 内部代号,本文将沿用论文中所用 “GeaFlow”,便于读者对应。
图片项目代码地址:https://github.com/TuGraph-family/tugraph-analytics

背景介绍

伴随着流处理技术的不断发展,它被各大应用领域广泛的使用,例如监控、推荐、广告等。虽然现有的流处理系统已经被证明对处理窗口类型的集合查询非常有效,但当面临更复杂的数据结构,例如图结构数据时,却面临非常多的挑战。

首先在流计算中 join 是一个开销非常大的操作,特别是对于动态变化的数据,因为每来一条数据都需要从另外一条流中找到其所对应的数据,另外还涉及到数据物化和 shuffle。而流式图计算中通常需要成百上千次图迭代才能得到结果,对应流计算就是成百上千次 join 操作。

其次流计算中数据聚集的中间状态,通常在固定窗口或者滑动窗口中,需要维护的数据量是远小于窗口的原始数据大小,且窗口通常不会特别大。而流式图计算中通常需要维持一个较长窗口且动态变化的图,比如在风险识别中需要回溯到几个月甚至几年的数据。

为了解决上述的这些问题,蚂蚁流式图计算团队开发和设计了一款
流图计算引擎 Geaflow,它能很好的解决流式动态图分析、遍历和计算的诉求,同时支持长窗口数据图数据状态管理、DSL 化流图任务研发等特性。

Geaflow 在蚂蚁的风控、营销等场景也得到了非常广泛的应用,同时也在双十一大促中大放异彩。下面我们来剖析下 Geaflow 的运行场景和内部技术。

运行场景

不同于图数据库,Geaflow 解决的问题是高吞吐场景下复杂的图分析和计算问题,例如深度图遍历、子图匹配、全图分析等。Geaflow 使用流式事件驱动的方式进行计算和查询,同时利用查询优化技术进行查询合并和加速。下面我们来描述下 Geaflow 的运行场景。

tu2.png

(图1)

图1 所描述的就是一个典型的 Geaflow 数据流向图。从整体的流水线来看,它在进行流式的构图,构图的数据可以包括多种不同类型的数据,可以是消息队队列,也可以是日志系统。数据可以经过ETL处理,最后转换为点和边写入图存储,图存储会定期的进行 checkpoint 来保障 ExactlyOnce。

同时,它还基于增量和变化的数据进行驱动图计算,例如反套现场景中不断进行付款的用户id。和其他通用的流计算系统不同的是,由于图计算是迭代计算,GeaFlow 支持流式链路上的迭代图处理。最后可以将图计算的输出数据加工处理,例如上图中进行 Window TopN 计算后输出。

架构设计

为了支持以上的场景,Geaflow 做了如下的架构设计:

tu3.png

(图2)

如图2所示,相对于典型的流系统,我们做了如下的扩展和补充。整体架构从上往下包含以下几层:

Hybird DSL

GeaFlow创新型的融合了表和图语义,利用表 DSL SQL以及图 DSL Gremlin 来描述,用户可以轻松通过类似SQL编程的方式编写实时图计算任务。同时,在 Query Planning 中,我们针对对逻辑执行计划和物理执行计划进行图语义优化;并且对多查询语句还 进行合并查询等优化。

Core API

GeaFlow 设计了一套带状态语义的算子,支持多种流、图语义,包括标准的流算子、vertex/edge-centric 的图算子。在图算子中,我们建立了很好的编程模型,支持用户各种不同的图结构,同时引入 session 来处理并发的图查询。

Streaming Engine

GeaFlow 运行时的分布式DAG执行层,可以灵活的在流图语义间切换,同时可以高效的支持多查询优化。在执行过程中,我们利用 off-heap 内存管理、sharing graph state 和批量执行等技术进行优化,极大的提升了整体的吞吐。

GeaFlow State

GeaFlow 的状态存储,用于存取流、图数据。可以使用 KV 语义的状态,也可以使用图语义的状态。在图状态中,我们设计了一套高效的 key layout,加速 vertex 和 edge 存取,兼容多种不同多模 backend。同时我们还开发了一套 graph-native 的 backend,利用类 CSR 的索引结构以及计算和存储分离架构支持更高效的图存取,与灵活的扩缩容。

实验结果

我们在这里列举了 Geaflow 和其他流计算引擎的对比。

在 K-Hop Neighborhood 场景中,我们选在 LiveJournal 以及 Twitter-2010两个公开数据集,对比 Geaflow、 Flink 以及 Differential Dataflow。实验是在8个 container 的集群上做测试,其中每个 container 规格为8c16G。

通过实现,我们可以看到:

在多个 hop 的遍历场景下,GeaFlow 整个的内存保持平稳,并不会随着迭代深度增加而显著增加,而其他通用流式计算引擎,则会有显著的存储空间放大,从而在 hop 数过多是内存溢出。

GeaFlow 针对典型流式图场景,对于基于通用路计算引擎基于 Join 来实现的方式,吞吐显著提升。

tu4.png

(图3)

在图查询仿真场景中,我们验证查询时间和并发执行 query 数的关系。

在图4中我们看到随着批次中并发的查询数据量增大,执行时间增加的并不会特别明显。可以发现融合40个query的时间只增加了22.7%,达到32.6倍的提速效果。

tu5.png

(图4)

总结及规划

Geaflow 源于6年前我们在蚂蚁业务场景的尝试,当时我们发现现有的流处理架构并不适合流式图处理,经过两年的孵化,Geaflow 成功的支持蚂蚁反欺诈业务,同时在2018年双十一期间达到每秒处理超过千万级事件的高吞吐量。在这些业务中的流式图查询和分析效果带来的业务效果也非常显著,证明了流式图处理在金融场景中可以提供非常多的帮助。之后我们引入 DSL 的支持,进一步减少用户开发成本,我们选择了 SQL + Gremlin 的组合,并不断改进器查询优化器,于是便有有大量的用户开始使用我们的DSL来查询和分析他们的图计算场景。如今 Geaflow 已成为蚂蚁最受欢迎的计算引擎之一。

接下来,我们计划在以下几个方面进一步发展 GeaFlow:

  • 融合更多的图语义,例如具有增量语义的图计算算子。

  • 探索更多声明式的图查询语言,例如 OpenCypher、GQL 和 SQL/PGQ 等。同时融入 CBO 优化,自动调参等能力。

  • 探索使用 Rust/C++ 等语言改写我们执行引擎,进一步提高性能。


GeaFlow(品牌名TuGraph-Analytics) 已正式开源,欢迎大家关注!!!

欢迎给我们 Star 哦!

Welcome to give us a Star!

GitHub👉https://github.com/TuGraph-family/tugraph-analytics

更多精彩内容,关注我们的博客 https://tugraph-analytics.github.io/

相关文章
|
机器学习/深度学习 人工智能 达摩院
[ICML'22] 阿里巴巴达摩院FEDformer,长程时序预测全面超越SOTA
本文介绍阿里巴巴达摩院决策智能实验室时间序列预测方向的最新(ICML 2022 accepted)工作:FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting论文链接:https://arxiv.org/abs/2201.12740代码链接:https://github.com/DA
2552 0
[ICML'22] 阿里巴巴达摩院FEDformer,长程时序预测全面超越SOTA
|
3月前
|
机器学习/深度学习 运维 大数据
【KDD2024】大数据基础工程技术集群异常检测论文入选
阿里云计算平台大数据基础工程技术团队主导,与浙江大学合作的论文《Cluster-Wide Task Slowdown Detection in Cloud System》被数据挖掘领域顶会ACM SIGKDD2024接收
|
机器学习/深度学习 人工智能 算法
CV领域再创佳绩!阿里云机器学习平台 PAI 多篇论文入选 ICCV 2023
近期,阿里云机器学习平台PAI发表的多篇论文在ICCV 2023上入选。ICCV是国际计算机视觉大会是由电气和电子工程师协会每两年举办一次的研究大会。与CVPR和ECCV一起,它被认为是计算机视觉领域的顶级会议之一。ICCV 2023将于10月2日至10月6日法国巴黎举办。ICCV汇聚了来自世界各地的学者、工程师和研究人员,分享最新的计算机视觉研究成果和技术进展。会议涵盖了计算机视觉领域的各个方向,包括图像处理、模式识别、机器学习、人工智能等等。ICCV的论文发表和演讲都备受关注,是计算机视觉领域交流和合作的重要平台。
|
固态存储 算法 内存技术
腾讯2021sigmod论文Spitfire分析
腾讯2021sigmod论文Spitfire分析
126 0
|
机器学习/深度学习 数据采集 弹性计算
阿里云机器学习平台PAI论文入选 SIGMOD 2023
阿里云机器学习平台PAI和北京大学杨智老师团队合作的论文被SIGMOD 2023录用。
|
机器学习/深度学习 算法 调度
阿里云机器学习平台PAI论文入选ASPLOS 2023
近日,阿里云机器学习平台PAI和上海交通大学冷静文老师团队合作的论文《图神经网络统一图算子抽象uGrapher》被ASPLOS 2023录取。
阿里云机器学习平台PAI论文入选ASPLOS 2023
|
达摩院 算法 调度
阿里达摩院KDD 2022最佳论文线上分享:核心作者解读FederatedScope-GNN
阿里达摩院KDD 2022最佳论文线上分享:核心作者解读FederatedScope-GNN
157 0
|
机器学习/深度学习 达摩院 自然语言处理
ICASSP2023|达摩院语音实验室入选论文全况速览
近日,语音技术领域国际会议ICASSP公布了本届论文审稿结果,阿里巴巴达摩院语音实验室有14篇论文被大会收录。本次被接收的论文研究方向涵盖语音识别、语音唤醒、语音增强、说话人日志、语义理解、多模态预训练等。 ICASSP (International Conference on Acoustics, Speech, and Signal Processing) 是国际声学,语音和信号处理会议,是IEEE信号处理协会组织的年度旗舰会议。历届的ICASSP会议都备受全球信号处理领域研究学者的广泛关注,ICASSP2023将于6月4号至6月10号于希腊举办。
654 0
|
机器学习/深度学习 存储 人工智能
阿里云机器学习平台PAI论文入选国际顶会ASPLOS 2022
近日,阿里云机器学习PAI主导的论文《机器学习访存密集计算编译优化框架AStitch》入选国际顶会ASPLOS 2022,论文通过编译优化的手段来自动化地提高机器学习任务的执行效率。此次入选意味着阿里云机器学习平台PAI自研的深度学习编译优化系统达到了全球业界先进水平,获得了国际学者的认可,展现了中国机器学习系统技术创新在国际上的竞争力。
|
弹性计算 人工智能 运维
阿里云与达摩院合作 AHPA 弹性预测论文被顶会 ICDE 录用
近日,阿里云容器服务团队与达摩院数据决策团队合作的论文《RobustScaler: QoS-Aware Autoscaling for Complex Workloads》被数据管理与数据库国际顶级会议 ICDE 2022 长文录用。
下一篇
无影云桌面