版本

# 基础性能


# 简介

本测评报告挑选了几项基础图数据库能力为目标,包括:简单图的导入、邻居查询、路径查询。

以下测试数据基于Graph500数据集,在单机部署下,eZooDB、Neo4j、TigerGraph三家图数据库的性能对比。


# 测试环境

项目 参数
服务器CPU AMD Ryzen 9 5900X 12-Core
服务器内存 DDR4 64G
服务器存储 SSD 1TB
系统 Ubuntu 21

# 数据集信息

名称 点数 边数 文件大小
Graph500 2396019 67108864 1.04G

Graph500测试标准,是测试高性能集群的图计算性能的通用标准。数据集中含2,396,019个顶点,67,108,864条边,其中顶点的最大出度为163500(Node id:"2982970")、最大入度为50205(Node ID:"50042")。

同时数据集中包含自环边(即顶点指向其自己的边)与重边(即两点间同方向存在多条边),三家图数据库均支持定义自环边结构。图数据库TigerGraph不支持重边结构,因此该数据库最终导入边数为64,152,390条。


# 数据导入测试

# 测试说明

在数据加载测试中,分别在三家图数据库中完成Graph500测试数据集的空库建立,对比所用时间。

# 测试结果

数据导入测试中,eZooDB的导入性能优于Neo4j和TigerGraph,导入用时仅为TigerGraph的1/3。

# 导入时间

数据库 导入时长
eZooDB 21.3s
Neo4j 22.8s
TigerGraph 61.52s

# 查询性能测试

# 邻居查询

在邻居查询中,在各个数据库中分别查询了正向邻居数,正向邻居,双向邻居数,双向邻居,超时时间设为300秒。

其中,正向邻居数与正向邻居的测试中,eZooDB的查询速度约为TigerGraph的8到30倍,在一阶时达到最大,约为Neo4j的100倍到1000倍以上,随阶数提高而提高,5到6阶后Neo4j响应超时。

正向邻居查询,各数据库平均查询时间如下表,单位毫秒。

阶数 1 2 3 4 5 6 7 8
eZooDB 0.129 0.918 1.513 3.249 4.914 5.579 5.819 5.975
TigerGraph 2.778 3.255 10.083 28.603 36.689 37.958 38.648 39.232
Neo4j 18.307 22.119 139.744 5453.733 338091.9 Timeout Timeout Timeout

双向邻居数与双向邻居的测试中,eZooDB的查询速度约为TigerGraph的8到100倍以上,在一阶时达到最大,二阶以内约为Neo4j的8到50倍,随着阶数提高而提高,4阶后Neo4j无法在超时时间内返回数据。

双向邻居查询,返回邻居数量,各数据库平均查询时间如下表,单位毫秒。

阶数 1 2 3 4 5 6
eZooDB 0.727 0.896 13.905 32.463 36.735 35.622
TigerGraph 375.476 763.014 1266.4677 1962.602 2352.898 2686.342
Neo4j 8.035 44.623 10427.794 Timeout Timeout Timeout

# 两点间全路径查询

在邻居查询中,在各个数据库中查询了正向路径。

正向路径的测试中,eZooDB的查询速度约为TigerGraph的3到50倍,随阶数增加而增加,约为Neo4j的7到500倍以上,随阶数提高而提高。

正向路径查询,返回最多10000条路径。各数据库平均查询时间如下表,单位毫秒。

阶数 1 2 3 4 5
eZooDB 2.377 1.033 1.481 30.858 710.289
TigerGraph 6.153 10.202 74.816 1368.749 OOM
Neo4j 14.646 19.173 130.034 4470.714 356123.7
最近一次更新时间: 9/27/2022, 3:01:42 AM