修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

图数据库基准测试报告(2022)

1. 测试目的

本次基准测试内容为嬴图数据库系统数据处理能力的性能测试。包含对系统安装、运维、监控、功能、稳定性、高可用性、伸缩性、并发能力、数据导入、图查询与分析、图算法、结果准确性、时效性、跨硬件平台兼容性等多个维度的性能指标进行综合评估。

同时,为了方便读者了解目前国际范围内其它图数据库系统的性能,本测试中也对标了Neo4j、TigerGraph、JanusGraph以及ArangoDB系统。

2. 测试环境

2.1. 硬件环境

测试集群由3个节点云主机虚拟化实例组成,硬件配置如下表所示:

服务器

配置

CPU

虚拟化X86-64位、Arm64架构32 vCPU(32线程)

主频2.0 GHz

内存

256GB

硬盘

1TB HDD(基于机械硬盘的云盘*)

网卡

5Gbps

2.2. 软件环境

软件名称

描述

操作系统

Linux (Centos 7.x、RedHat7/8 或Ubuntu 18.x)

容器环境

Docker 19.x

图数据库

嬴图 v4.0

Neo4j v4.0.7 Enterprise Edition

TigerGraph v3.1

JanusGraph v0.6.1

ArangoDB v3.7

注:多系统间性能对标测试结果在3.2.3 性能测试细项部分。

2.3. 数据集

数据集

描述

Twitter-2010

http://an.kaist.ac.kr/traces/WWW2010.html

数据集信息

Twitter_rv.tar.gz

点:4160万,边:14.7亿

数据建模

对数据集进行扩展,使得点和边都具有属性。例如,当运行PageRank、LPA和Louvain图算法时,结果可以被写入点属性,也可以不时地进行更新。

注:多系统间性能对标测试结果在3.2.3 性能测试细项部分。

3. 功能测试

3.1. 功能测试结果汇总

测试项目

测试标准

嬴图测试结果

系统安装

在“测试结果”列中记录本次安装时间

~30min

可扩展性

支持分布式数据架构,支持数据分片,支持水平和垂直扩展

支持HTAP分布式架构,支持垂直与水平扩展

图数据更新

支持无需暂停查询服务就可对图模型进行更新,包括对顶点和边的增删改

支持在线更新点和边,并可查询变化后结果,运行算法亦可得到变化后结果

数据加载

支持批量数据导入和流式数据导入,支持Delimited Text(包括csv)、json格式的导入,支持断点续传

支持csv导入,支持断点续传

图谱更新

支持实时图谱更新

支持实时图谱更新

语言表达力

图数据库查询语言能力验证

支持完备的UQL图操作语言,易学易用,易于扩展,同时面向业务与技术人员

高并发小查询

支持单个顶点多跳邻居的高并发查询,并能实时反馈查询结果

支持高并发查询

影响力分析

支持LPA、PageRank算法

支持

社区发现

支持弱联通分量、强联通分量、标签传播、鲁汶算法

支持

图谱交互

支持点、边、属性展示,支持图谱下钻,支持按条件高亮显示顶点或边

支持

运维监控

支持系统运行监控,如CPU、内存、磁盘情况

支持

日志管理

有详尽的日志输出

支持

数据访问控制

支持多图功能,支持多图共享顶点和边

支持

权限管理

具备用户权限管理能力

支持

备份和恢复

支持在线备份,支持系统恢复功能

支持

高可用

支持高可用

支持

支持灾备

异地灾备

支持

3.2. 性能测试

3.2.1. 性能测试结果汇总

测试项目

测试标准

嬴图测试结果

数据加载

数据加载准确无误,并记录加载时间

2700秒

数据存储空间

入库后存储空间与原始数据的大小的比率

1.3

一度邻居查询

给定一个顶点,查询获得所有一度邻居并打印数量。基于种子文件的10个顶点,执行以上查询,统计平均执行时间

0.00062秒(平均)

二度邻居查询

给定一个顶点,查询获得所有二度邻居并打印数量。基于种子文件的10个顶点,执行以上查询,统计平均执行时间

0.027秒(平均)

三度邻居查询

给定一个顶点,查询获得所有三度邻居并打印数量。基于种子文件的10个顶点,执行以上查询,统计平均执行时间

0.52秒(平均)

六度邻居查询

给定一个顶点,查询获得所有六度邻居并打印数量。基于种子文件的10个顶点,执行以上查询,统计平均执行时间

1.408秒(平均)

二十三度邻居查询

给定一个顶点,查询获得所有二十三度邻居并打印数量。基于种子文件的10个顶点,执行以上查询,统计平均执行时间

1.295秒(平均)

最短路径

给定任意两个顶点,统计最短路径数量,记录计算时间

0.18秒(平均)

更新图集前后查询结果对比

改变图的拓扑结构前后进行实时查询,观察是否能实时得到对应的结果变化(K邻查询: 多层邻居计算)

实时

相似度计算

给定节点accard相似度Top10计算,记录平均执行计算时间

4.99秒

PageRank

运行PageRank算法耗时

23秒

社区发现(标签传播)

运行标签传播算法耗时

80秒

 

社区发现(鲁汶)

运行鲁汶社区识别算法耗时

210秒

注:23跳的时间可以短于6跳的时间是因为这些不同的顶点的K-Hop邻居在图上拓扑空间的分配密度不同所致。

3.2.2. 性能测试细项

3.2.2.1. 数据加载

测试目的:将整个数据集加载到图数据库中并开始提供服务。此测试可以显示图系统加载大量数据的速度。

嬴图系统测试内容结果:

测试项目

测试标准

顶点数量

边数量

加载时间

数据加载

数据加载准确无误,并记录加载时间

41652330

1468365182

2700秒

各家系统对标结果如下:

数据集

Twitter2010

图系统

嬴图

TigerGraph

Neo4j

JanusGraph

ArangoDB

导入时间 ()

2700

1550

3120

20800

32200

相对时间

1.7

1

2

13.4   

20.8

存储空间

30GB

12GB*

55GB

56GB

128GB

相对空间

2.5

1

4.58

4.67

10.67

3.2.2.2 K邻查询

测试目的:K邻查询是任何图系统的基本查询类型。它能帮助用户快速识别实体(目标节点)的影响范围。K邻必须使用BFS(广度优先搜索)地方法实现,并且有一些注意事项:

  • 通常有两种定义K邻的方法,它们的结果不同。一种方法是从第1跳到第K跳的所有邻居,另一种方式是所有距离起始节点正好是K跳的所有邻居。
  • 如果节点出现在特定节点的第N跳上,则不会显示在其他距离的结果中。在执行算法时,跨不同距离对节点执行重复数据消除至关重要,否则结果将是错误的。
  • 节点的直接邻居的数量与边的数量不同,因为一对相连的节点可能有2条双向连接它们的边。

嬴图系统测试内容结果:

注:下表中的N度邻居数指第N度邻居,即与源点最短路径长度(步数)为N步的全部不重复的顶点数量。考虑到其它系统可能使用了1-N度邻居查询,最后的对标测试结果统一可改为(1-N度邻居计算,此种方式去重计算复杂度会降低)。

测试项目

测试标准

给定顶点号

N度邻居数量

执行时间

(毫秒)

平均执行时间  (毫秒)

一度邻居查询

给定多个顶点,查询获得每个顶点的所有一度邻居并打印数量,并记录执行时间

20727483

973

0.509ms

0.62ms

50329304

4746

0.815

26199460

19954

0.868

1177521

4272

0.777

27960125

7

0.484

30440025

3386

0.733

15833920

2181

0.505

15015183

2279

0.492

33153097

116

0.491

21250581

37

0.536

二度邻居查询

给定多个顶点,查询获得每个顶点所有二度邻居并打印数量,并记录执行时间

20727483

2874132

5.823ms

27.33ms

50329304

2714697

5.606

26199460

7818213

69.953

1177521

19318826

70.281

27960125

533108

1.983

30440025

11294131

21.967

15833920

7858255

22.746

15015183

5933114

27.222

33153097

12181518

25.157

21250581

11063971

22.537

三度邻居查询

给定一个顶点,查询获得所有三度邻居并打印数量,并记录执行时间

20727483

27206363

400.011ms

520ms

50329304

29939223

407.992

26199460

31324330

526.919

1177521

17139727

741.438

27960125

20280156

101.114

30440025

23120607

748.711

15833920

26263805

649.454

15015183

27727527

475.516

33153097

20512136

507.208

21250581

20804932

641.811

六度邻居查询

给定多个顶点,查询获得其中每个顶点所有六度邻居并打印数量,并记录执行时间

20727483

10028

1213.226ms

1408ms

50329304

9052

1410.373

26199460

3022

1372.880

1177521

3101

1220.169

27960125

25838

1576.181

30440025

5437

1659.473

15833920

5618

1210.724

15015183

6197

1320.371

33153097

6033

1229.563

21250581

6738

1769.825

二十三度邻居查询

给定一个顶点,查询获得所有二十三度邻居并打印数量,并记录执行时间

15738828

3

1203.212ms

1295ms

9358362

1

1279.99

9358352

1

1529.716

17571568

1

1167.854

嬴图执行代码:
khop().src({_id == 顶点号}).depth(查询深度).boost() as n return count(n)

 各家系统对标结果如下:

数据集

Twitter2010

图系统

嬴图

TigerGraph

Neo4j

JanusGraph

ArangoDB

1度邻居(秒)

0.00062

0.024

0.2

0.39

1.667

2度邻居(秒)

0.027

0.46

18.3

27.7

28.9

3度邻居(秒)

0.52

6.6

290

4300

3888

6度邻居(秒)

1.408

62.5

N/A

N/A

N/A

23度邻居(秒)

1.295

N/A

N/A

N/A

N/A

3.2.2.3. 最短路径

测试目的:测试常用的最短路径算法的正确性和性能。

测试内容结果:需要找到6步以内任意两个顶点间的全部最短路径数量,统计平均运行时间

测试项目

测试标准

起点

终点

最短路径数量

查询时间

平均时间(秒)

随机10对点的最短路径

给定两个顶点,查询它们之间的最短路径的数量。记录执行以上查询的时间。

50329304

21613682

25389

0.145s

0.18s

49449489

15645246

2080710

1.512s

39687658

47978366

46

0.052s

15489748

38548456

8

0.003s

17524616

29884615

5

0.058s

33033471

37029346

273

0.007s

37048837

17555248

1114

0.008s

26895497

37893465

2

0.002s

26468497

37164965

6

0.002s

54151557

37190965

30837

0.033s

嬴图执行代码

ab().src({_id == 起点ID}).dest({_id == 终点ID}).depth(6).shortest().boost() as paths return count(paths)

 

各系统对标结果如下:

源数据

Twitter2010),4200万顶点、14.7亿边、24.6GB

图系统

嬴图

TigerGraph

Neo4j

JanusGraph

ArangoDB

全部最短路径(秒)

0.18

9.2

注:深度≥6步的无法在10分钟内返回

注:深度≥3步的无法在10分钟内返回

注:深度≥3步的无法在10分钟内返回

无法正确返回

(仅能返回1条路径)

3.2.3.5影响力分析

测试目的:测试常用的PageRank算法的性能。

测试内容结果:PageRank必须进行全量计算,并且排序后返回Top-10

测试项目

测试标准

嬴图测试结果

全量计算后,返回分值最高的10个顶点及其Ranking

查询时间(秒)

影响力分析

运行PageRank算法,其中迭代次数设为10,阻尼系数为0.8,并获取分值最高的10个顶点。记录执行以上查询的时间。

813286,14276.1

14224719,12240

31567254,10288.6

15131310,9860.32

16049683,8546.38

7040932,6775.97

14075928,6672.9

12687952,5345.58

5380672,5021.32

26784273,2886.91

16s

嬴图执行代码:

algo(page_rank).params({order:’desc’,init_value:0.2,loop_num:10,damping:0.8,limit:10}).write({file:{filename:”my_pagerank_result”}})

 

各系统对标结果如下:注,其它系统并不支持或没有对结果进行排序,如需排序则可能无法完成测试。

3.2.3.6社区发现

测试目的:测试常用的标签传播算法、Louvain社区识别算法在大数据集上运行时的性能。

测试内容结果:

测试项目

测试标准

社区数

查询时间(秒)

标签传播

运行标签传播算法,其中迭代次数设为10,并打印社区数。记录执行以上查询的时间。

116602

80s

鲁汶社区识别(Louvain)

运行Louvain社区识别算法,其中迭代次数设为10,收敛精度0.01并打印社区数。记录执行以上查询的时间。

1207

(社区数量存在抖动,此处取中位数)

210s 

嬴图执行代码:

algo(lpa).params({loop_num:10}).write()

algo(louvain).params({phase_1_loop_num:10.min_modularity_increase:0.01}).write

 

各系统对标结果如下:

源数据

Twitter2010),4200万顶点、14.7亿边、24.6GB

图系统

嬴图

TigerGraph

Neo4j

JanusGraph

ArangoDB

PageRank

(秒)

23

258

 

600

N/A

无法完成

N/A

无法完成

LPA

(秒)

80

900

N/A

无法完成

N/A

无法完成

N/A

无法完成

鲁汶社区

(秒)

210

N/A

注:未测试

N/A

注:无法在30分钟内完成映射

N/A

注:未测试

N/A

注:未测试

注:以下各测试项仅在嬴图数据库系统上完成测试,其它图数据库系统因测试资源和时效性限制并未完成对标测试。

 

3.2.3.7 更新图集前后查询结果对比

            测试目的:更新图集前后,对图集进行查询并对比更新前后的查询结果,测试计算的正确性和性能。此测试项检验的是图数据库系统是否具有实时更新并实时计算的能力(避免某些图系统通过缓存获得错误的、更新前的数据结果返回)。

            测试内容结果:

测试项目

测试标准

新建边起点ID

新建边终点ID

查询深度

更新图集前的K邻(第K度邻居)

更新图集后的K邻(同左)

 更新图集前后查询结果对比

查询某起步点3步以上的k邻居,查询该点为起点的某最短路径,将最短路径首尾相连,重新查1,3,6步k邻数量,对比新插入边前后的查询结果变化

20727483

28843543

1

973

974

3

27206363

27210397

6

10028

10027

50329304

21378173

1

4746

4747

3

29939223

29939314

6

9052

9052

26199460

32278263

1

19954

19955

3

31324330

31324333

6

3022

3022

1177521

6676222

1

4272

4273

3

17139727

17139725

6

3101

3101

27960125

48271231

1

7

8

3

20280156

20283107

6

25838

25836

30440025

38232241

1

3386

3387

3

23120607

23121930

6

5437

5431

 

3.2.3.8 相似度计算

测试项目

测试标准

给定顶点(公司名或人物ID)

执行时间

平均执行时间(秒)

相似度计算

给定一个顶点,查询与其最相似的10个顶点 (Jaccard相似度, Top-10)

20727483

1.586s

4.99s

50329304

2.003s

26199460

10.573s

1177521

10.52s

27960125

0.359s

30440025

2.865s

15833920

5.042s

15015183

5.283s

33153097

5.201s

21250581

4.525s

嬴图执行代码:

find().nodes({_id == 给定ID}) as n with n

algo(similarity).params({uuids:[n],top_limit:10,type:"jaccard"}) as r return r

 

请完成以下信息后可下载此书
*
公司名称不能为空
*
公司邮箱必须填写
*
你的名字必须填写
*
你的电话必须填写
*
你的电话必须填写