术语表

本页面列出了GraphScope项目中使用的所有术语。

FLASH

FLASH是一种分布式编程模型,用于编写广泛的图算法,包括聚类、中心性、遍历、匹配、挖掘等。FLASH遵循以顶点为中心的理念,但通过提供灵活的控制流、对任意顶点集的操作以及超越邻域的通信,进一步提升了表达能力。FLASH使得在分布式运行时环境中编写各种复杂图算法变得简单。用FLASH表达的算法只需几行代码,就能提供令人满意的性能。

FLASH计划作为分析引擎(GAE)中的一个模块集成到GraphScope中。

了解更多:ICDE2023论文, 文档

GRAPE

GraphScope中分析引擎的代号。它首次在SIGMOD2017论文中被提出,代表GRAph Parallel processing Engine(图并行处理引擎)。该分析引擎继承了这篇论文中提出的设计。

GRAPE的核心部分已在https://github.com/alibaba/libgrape-lite开源,它是GraphScope的依赖项并作为其分析引擎。

了解更多:Best Paper on SIGMOD2017, Design of GAE

GAE

GAE是GraphScope分析引擎的简称,也称为GRAPE。

GART

GART是Graph Analysis and Relational Transactions的缩写。它是一个松耦合框架,可部署用于桥接现有的关系型OLTP系统(如MySQL)与图专用系统GraphScope。简而言之,GART利用现代OLTP系统的高可用性机制,并借助OLTP系统的预写日志(WALs)来提取图数据,进而在GraphScope的执行引擎上执行图相关的工作负载。与离线数据迁移不同,GART复用WALs以支持多版本的方式在线重放图数据。

GART计划集成到GraphScope的存储层中。

GRIN

GRIN是GraphScope中提出的标准数据检索接口。GRIN的目标是为图计算引擎提供一种通用方式,用于检索存储在GraphScope不同存储引擎中的图数据,并简化这些引擎之间的集成。

GRIN采用C语言定义,因此可移植到使用不同编程语言(如C++、Rust和Java)开发的系统中。它提供了一组通用操作和数据结构处理器,无论底层存储引擎如何,都能用于访问图数据。

代码仓库: https://github.com/graphscope/grin

GraphAr

GraphAr(全称Graph Archive)是一个旨在简化各类应用系统(包括内存与外部存储、数据库、图计算系统以及交互式图查询框架)便捷高效构建与访问图数据的项目。

代码仓库: https://github.com/alibaba/GraphAr

Groot

Groot是GraphScope中持久化存储的代号。其名称源自电影《银河护卫队》中的树人格鲁特。"g-root"这一命名也体现了存储组件在图系统中的基础性作用。

阅读更多

GUM

GUM是一个高效的多GPU图分析引擎,采用工作窃取机制来解决动态负载不均衡和长尾问题。它通过利用现代多GPU服务器中的高速NVLink实现这一目标。此外,GUM能敏锐感知GPU连接的非对称拓扑结构,并在每次迭代时从全局视角生成最优任务窃取方案。凭借这种创新方法,GUM能带来显著的性能数量级提升。

GUM作为GRAPE的GPU加速模块在适用时发挥作用。

了解更多:ICDE2023论文, 代码

MaxGraph (已弃用)

MaxGraph是GraphScope中已弃用的交互式引擎。它已被全新设计的支持多查询语言(如Gremlin/Cypher等)的引擎GAIA所取代。

Vineyard,或简称v6d

Vineyard是内存不可变管理的代号。其名称暗示它是GRAPE的一个底层组件。

Vineyard (v6d) 是一款创新的内存不可变数据管理器,为各类大数据任务(如图分析(如GraphScope)、数值计算(如Mars)和机器学习)中的分布式数据提供开箱即用的高级抽象和零拷贝内存共享功能。该项目是CNCF沙箱项目。

代码仓库: https://github.com/v6d-io/v6d

GIE

GraphScope交互式引擎(简称GIE)利用Gaia(或Pegasus)实现分布式并行执行。它提供两种存储选项:不可变的内存存储v6d和可变的持久化存储groot。GIE能够使用Tinkerpop的Gremlin语言处理查询,并即将支持Neo4j的openCypher。GIE的功能通过先进的中间表示层(IR Layer)得到增强,该层将查询语言与计算引擎和存储系统解耦。

GAIA

Gaia是一个基于循环数据流计算模型的分布式数据并行计算引擎,已被GIE用于支持大规模交互式图查询。 Gaia作为计算引擎,位于GraphScope系统的核心。用户可以通过有向无环图(DAG)构建计算任务,并轻松在笔记本电脑甚至跨计算机集群的分布式环境中运行作业。需要注意的是,循环可以通过循环控制流引入,而整个循环上下文将被封装在一个作用域(scope)内,对用户完全隐藏循环细节。作用域是Gaia处理复杂控制流(如循环和条件)的独特概念。此外,它也是实现许多应用级原语(如相关子任务)以及高级调度技术(如提前终止机制)的关键。

了解更多:NSDI 2021论文

Pegasus

Gaia的旧称,在项目中我们交替使用Gaia和Pegasus这两个名称。

入口

Ingress是一个用于增量图处理的自动化系统。它能够将批处理的顶点中心算法整体增量化为对应的增量版本,无需用户重新设计逻辑或数据结构。Ingress底层是一个配备了四种不同记忆化策略的自动化增量框架,可支持各类顶点中心计算并优化内存利用率。

Ingress计划作为分析引擎(GAE)中的增量计算模块集成到GraphScope中。

了解更多:Paper on VLDB2021

PIE模型

GRAPE提出的子图中心编程模型,其名称GRAPE是Partial evaluation(部分求值)、Incremental evaluation(增量求值)和assemblE(组装)这三个核心功能的缩写。