艾体宝产品 | 基准测试:ArangoDB性能碾压Neo4j,速度最高提升8倍!

引言

本文呈现了ArangoDB图形分析引擎(GAE)与Neo4j的基准测试结果,其中GAE是ArangoDB数据科学套件的重要组成部分。

本次测试具备可重复性,旨在对两款数据库进行中立、全面的对比,确保评估结果公平无偏。测试采用了wiki-Talk数据集------这是一个广泛应用的真实世界图形数据集,源自维基百科的编辑和讨论历史,精准捕捉了维基百科用户间的互动模式,尤其是用户讨论页上的交流行为。

该数据集因具备有向图结构、丰富的节点与边、时间维度属性及稀疏性等独特特征,成为图数据库和图分析系统基准测试的优选。测试结果充分展现了两款数据库的效率与扩展性,为企业评估图数据库提供了极具参考价值的基准模型。

基准测试结果亮点

测试结果揭示了多项关键发现,尤其凸显了ArangoDB在图分析任务中的卓越性能,具体如下:

  • 在多种图计算算法上,ArangoDB表现持续优于Neo4j,性能提升幅度在1.3倍至8倍不等。

  • 在图数据加载速度上,优势同样显著。针对wiki-Talk数据集,ArangoDB的图加载效率较Neo4j实现了100%的提升。

这一出色表现得益于ArangoDB优化的数据存储与检索机制、先进的查询执行逻辑,以及对集群部署的高效利用,使其在各类场景中都能发挥出色性能。这些发现充分证明:

  • ArangoDB能够支撑更大规模、更高速度的实时图分析应用。

  • 对于需要快速数据处理与分析的行业和企业而言,ArangoDB是更具吸引力的选择,例如实时推荐系统、社交网络分析、欺诈检测及网络安全等领域。

测试详情

数据集(wiki-Talk)

本次测试选用了业内公认的wiki-Talk数据集来评估图数据库的性能,具体数据规模如下:

|-----------|-----------|-----------|
| 使用的图 | 节点数 | 边数 |
| wiki-Talk | 2,394,385 | 5,021,410 |

硬件环境

所有测试均在同一台设备上进行,硬件配置如下:

  • 操作系统:Ubuntu 23.10(64位)

  • 内存:192 GB(4800 MHz)

  • CPU:Ryzen 9 7950X3D(16核32线程)

数据库配置

|----------|------------------------------|----------|
| 数据库 | 版本 | 部署方式 |
| Neo4j | 5.19.0(社区版) | 本地部署,单进程 |
| ArangoDB | 3.12.0-NIGHTLY.20240305(社区版) | 本地部署,单进程 |

主要测试流程

测试采用两种工作流来衡量性能:

  • 工作流A:创建内存图(in-memory representation) → 每个算法执行一次 → 测量整个流程耗时

  • 工作流B:创建内存图(in-memory representation) → 测量图创建时间 → 分别执行每个算法 → 测量计算耗时

测试算法

本次测试涵盖以下四种核心图算法:

  1. PageRank(页面排名):基于节点连接关系对节点进行排名,广泛应用于搜索引擎。

  2. WCC(弱连通分量):识别图形中任意两个顶点可通过路径连接(忽略边的方向)的子集。

  3. SCC(强连通分量):识别图形中同一子集内所有顶点可相互到达的子集。

  4. Label Propagation(标签传播):用于图形社区检测的半监督学习算法,节点通过迭代方式向相邻节点传播自身标签。

所用技术

  • JavaScript框架:Vitest + tinybench

  • 通信方式:

    • Neo4j:官方Neo4j JS驱动("neo4j-driver": "^5.18.0")

    • GAE:基于Axios的纯HTTPS 请求("axios": "^1.6.8")

测试结果

图加载性能(wiki-Talk数据集)

|------------------|----------|------------|--------|
| 任务 | GAE耗时(秒) | Neo4j耗时(秒) | 速度提升倍数 |
| 加载wiki-Talk图 | 9.9 | 18 | 1.8倍 |
| 加载带属性的wiki-Talk图 | 10.7 | 19.2 | 1.8倍 |

图计算性能(wiki-Talk数据集)

|---------------------|----------|-------------|--------|
| 任务 | GAE耗时(秒) | Neo4j 耗时(秒) | 速度提升倍数 |
| 计算PageRank | 3.8 | 10.6 | 2.8倍 |
| 计算WCC | 2.3 | 4.5 | 1.7倍 |
| 计算SCC | 3.2 | 6.7 | 2.1倍 |
| 计算Label Propagation | 1.5 | 13 | 8.5倍 |

ArangoDB性能领先的原因

ArangoDB在wiki-Talk数据集上的出色表现,源于其特定的架构优化,而非单纯的计算性能优势。本次测试中,ArangoDB承担数据存储角色,图分析引擎(GAE)负责计算任务,核心优化集中在两个关键阶段:

图加载阶段优化

  • 并行数据提取(Parallel Data Extraction):ArangoDB支持从单节点和分布式系统中并行加载数据,可横向扩展至多台设备,通过提升并行度加快数据传输速度,相比串行或非并行提取方案,性能大幅提升。

  • 定向数据传输(Projections for Targeted Data Transfer):仅传输分析所需的数据属性。例如,若仅需边ID和单个属性,系统会精准提取并传输这些字段,避免传输完整文档带来的额外开销,减少数据量和网络延迟。

图分析引擎(GAE)优化

  • 高效的内存结构:采用高度优化的内存数据结构存储图数据,在降低内存占用的同时,保证极快的访问速度,图加载后可立即投入计算,无额外延迟。

测试范围说明

需特别说明的是,本次测试未评估以下内容数据插入ArangoDB的耗时和ArangoDB自身执行的计算任务。测试核心评估维度为:

  • 从ArangoDB向GAE加载图数据的效率。

  • GAE执行图算法的能力。

通过聚焦这两个阶段,测试充分展现了ArangoDB设计上的优势------能够通过快速数据加载和与GAE的高效协同,支撑大规模图工作流。

测试可重复性保障

本次测试结果100%可复现,确保结果的一致性和可验证性。如需复现测试,可按照以下步骤操作:

  1. 搭建硬件环境:安装Ubuntu 23.10操作系统,配置192 GB内存和Ryzen 9 7950X3D CPU。

  2. 安装配置数据库:使用提供的Docker配置,安装并配置最新版本的Neo4j和ArangoDB,两者均采用单线程(非集群)配置。

  3. 执行测试:使用wiki-Talk数据集,按照测试配置中概述的工作流A和B,运行指定的图算法(PageRank、WCC、SCC、Label Propagation)。

  4. 结果对比:测量内存中图创建时间和计算时间,对比两款数据库的表现。

结语

基准测试结果清晰表明,在图计算和数据加载任务中,ArangoDB的性能远超Neo4j。其显著的速度优势------尤其是在执行复杂算法和加载大规模数据集时的高效表现,彰显了其优化的架构设计和出色的数据处理能力。

  • 如果你的应用需要大规模图数据处理+实时或近实时图分析,ArangoDB显然比Neo4j更适合。

  • 对于推荐系统、社交网络分析、欺诈检测、网络安全、知识图谱、复杂关系分析等场景,ArangoDB的速度与可扩展性能够带来明显优势。

  • ArangoDB不仅是图数据库,它是一个多模型(multi-model)数据平台,结合图(graph)、文档(document)、键值(key/value)、向量(vector)和搜索(search)等能力,使开发者/企业能够更灵活构建复杂应用。

因此,如果你正在为数据密集、连接复杂、需要高性能分析的系统选型,ArangoDB无疑是更值得信赖的选择!

相关推荐
哈哈老师啊2 小时前
Springboot校园订餐管理系统k2pr7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
JIngJaneIL2 小时前
基于java+ vue学生选课系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
石明亮(JT)2 小时前
MySQL8.0电商金融交易系统SQL实战
数据库·mysql
amao99882 小时前
数据库管理系统DBMS
数据库·oracle
wdfk_prog2 小时前
Ubuntu 虚拟机根文件系统损坏故障的深度分析与修复
linux·数据库·ubuntu
DemonAvenger2 小时前
Redis发布订阅模式:打造实时消息通信系统的实践指南
数据库·redis·性能优化
sc.溯琛3 小时前
MySQL 入门实验:环境搭建与基础操作全攻略
数据库·mysql
JIngJaneIL3 小时前
基于java+ vue建筑材料管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
一 乐3 小时前
办公系统|基于springboot + vueOA办公管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring