Galaxybase银河图数据库基准测试

Galaxybase VS TigerGraph 发布日期:2022-01-20

测试报告摘要

Galaxybase 是国内首款成熟的超大规模原生分布式并行图数据库,底层存储不依赖第三方系统,完全自研可控,具有完全自主知识产权。Galaxybase 拥有速度快、高扩展、实时计算、高效数据压缩等技术优势。

本次基准测试,旨在测试分布式图数据库之间的性能差异,我们选取了TigerGraph 分布式图数据库与 Galaxybase 原生分布式并行图数据库作横向对比。
测试内容包括:

数据加载
1. 数据加载时间
2. 数据落盘大小
查询性能
1. K跳邻居查询测试
2. 最短路径查询测试
3. 全图算法查询测试
压力测试
1.读写性能压力测试

1.基准测试设置

本节描述测试的图数据库系统、使用的硬件平台和数据集。

1.1 测试的图数据库及系统版本
  • Galaxybase 3.3.0
  • TigerGraph 3.2
1.2 硬件环境

本次测试在 3 个节点的多机环境下,对所有图数据库系统都采用相同配置的服务器进行测试,详细配置信息如下:

服务器配置
Age
Age
CPU参数
12核心3.5GHz
内存
128G DDR4
网络宽带
千兆
硬盘
5.5T 机械硬盘
1.3 软件环境
  • 操作系统:Ubuntu 16.04.1 LTS(kernel 版本:4.15.0-72-generic)
  • Java 版本:Java SE 8 Update 201 (build 1.8.0_201-b09)
  • Docker 版本:Docker version 17.06.2
1.4 测试数据集

本次测试采用三个公开数据集,详细信息如下:

名称
数据描述
点数量
边数量
原始数据大小
Graph 500
Synthetic Kronecker graph http://graph500.org
240万
6700万
1G
Twitter-2010
Twitter user-follower directed graph http://an.kaist.ac.kr/traces/WWW2010.html
4160万
14.7亿
24.6G
SF10
LDBC benchmarks 数据集
2998万
1.7亿
8.3G
注:以上数据描述为原始数据下载链接,实际操作时,数据会分成点文件和边文件进行加载。

2.数据加载测试

数据加载测试检测了以下两个方面:

  • 数据加载时间
  • 数据落盘大小
2.1 加载方法

对于各个图数据库产品,我们都选择了对该图数据库产品自身最有利的批量加载数据方法,具体加载方法如下:

测试项
加载时使用的 API 或方法
Galaxybase
使用 galaxybase-load 工具导入
TigerGraph
GSQL 声明加载作业
2.2 落盘大小测试方法说明

本次测试的图数据库系统都有固定的落盘路径,我们通过 du -sh 命令测量落盘目录的大小,从而获得落盘数据。各图数据库我们测试的落盘目录如下:

测试项
落盘目录
Galaxybase
${galaxybase-home}/db/store/${graphIndex}
TigerGraph
${tigergraph-home}/gstore
2.3 数据加载时间及落盘大小
测试项
Galaxybase
TigerGraph
数据集
Graph 500
导入时间
67.1 s
62.0 s
落盘大小
2.4 G
855.0 M
原始数据大小
1.0 G
数据集
Twitter-2010
导入时间
1311.1 s
1044.0 s
落盘大小
47.0 G
20.8 G
原始数据大小
24.6 G
数据集
SF10
导入时间
315.0 s
124.0 s
落盘大小
10.6 G
7.3 G
原始数据大小
8.3 G
2.4 数据加载小结
  • Galaxybase 与 TigerGraph 相比,导入时间长,落盘空间大。原因在于TigerGraph两点之间只支持一条同类型的边,适用场景有限;而 Galaxybase 对两点之间同类型的边的数量不做限制,且为了方便对边的精确查询,对每条边设置了边id,增加了时间和落盘的开销。

3.查询性能测试

图数据库的查询性能测试检测了以下三个方面:

  • K跳邻居查询测试
  • 最短路径查询测试
  • 全图算法查询测试
3.1 K 跳邻居查询测试

K 跳邻居(k-hop neighbor)查询,是在一个未加权的有向图中,定义点v 的k 跳邻居为:从v开始以不超过 k 跳可达(即经过 k 跳或更短的路径)的所有点的集合,该查询为检验图遍历性能的经典方法。

3.1.1 查询方法

对每个数据集,选取 100 个样本,统计其 N 跳扩展所遍历到邻居点的数量,记录平均时间进行对比。分别测试 N=1、2、3、4、5、6 的情况。N 为 1、2 时,设置超时时间为3 分钟/查询,3跳及以上时,设置超时时间为 1 小时/查询。

对于 Galaxybase,具体使用的查询接口是 JavaAPI 中的 bfsMaster 接口;对于TigerGraph,通过编写 GSQL 实现分布式查询逻辑。

注:

1. 在样本的选择上,会遇到两个问题:如果样本点出度太小,那么就不能很好地体现图遍历性能;如果样本点间出度相差过大,那么查询的耗时相差也会很大,统计出的平均值的指导意义就会下降;为了规避这两个问题,对每个数据集,我们从出度为1000 的点中随机选取了100个作为样本。

2. 为了将测试重心集中在图遍历上,避开结果传输的影响,我们只查询K 跳邻居的数量,而不是返回完整的邻居点集合。

3. 为了查询结果的严谨性,我们在参与测试的图数据库中,对查询结果进行了交叉验证,确保不同数据库的查询结果一致。

3.1.2 测试结果

  • 基于 Graph 500 数据集,各图数据库执行不同跳邻居查询的耗时结果如下:
  • 测试项
    查询响应时间 (单位:毫秒)
    平均邻居数
    数据集
    测试内容
    Galaxybase
    TigerGraph
    Graph 500
    一跳
    5
    5
    984
    二跳
    127
    936
    497163
    三跳
    643
    2021
    1754778
    四跳
    1092
    2466
    1814567
    五跳
    1120
    2880
    1819468
    六跳
    1153
    3318
    1820878
  • 基于 Twitter-2010 数据集,各图数据库执行不同跳邻居查询的耗时结果如下:
  • 测试项
    查询响应时间 (单位:毫秒)
    平均邻居数
    数据集
    测试内容
    Galaxybase
    TigerGraph
    Twitter-2010
    一跳
    5
    5
    1001
    二跳
    457
    1458
    1990879
    三跳
    8052
    12416
    22949457
    四跳
    18569
    24326
    33384879
    五跳
    22592
    26553
    34855258
    六跳
    23291
    27435
    34999822
  • 一跳查询
  • 一跳查询下,各图数据库对于不同数据集的响应时间(单位:毫秒)

  • 二跳查询
  • 二跳查询下,各图数据库对于不同数据集的响应时间(单位:毫秒)

  • 三跳查询
  • 三跳查询下,各图数据库对于不同数据集的响应时间(单位:毫秒)

  • 四跳查询
  • 四跳查询下,各图数据库对于不同数据集的响应时间(单位:毫秒)

  • 五跳查询
  • 五跳查询下,各图数据库对于不同数据集的响应时间(单位:毫秒)

  • 六跳查询
  • 六跳查询下,各图数据库对于不同数据集的响应时间(单位:毫秒)

3.1.3 结论

  • 以上结果表明,Galaxybase 的 K 跳邻居查询性能优于TigerGraph,且数据规模越大,优势越明显。
  • Galaxybase 在 K 跳邻居查询上展现的优异性能,得益于它使用了原生图存储的方式,同时对图遍历算法进行了深度优化。
3.2 最短路径查询测试

最短路径是最常用的图算法之一。我们准备了 100 组样本,路径长度为1-5 的样本各占20%,设置超时时间为 5 分钟。

3.2.1 测试结果

  • 基于相同数据集,各图数据库执行最短路径查询的耗时情况如下:
  • 测试项
    查询响应时间 (单位:毫秒)
    数据集
    Galaxybase
    TigerGraph
    Graph 500
    36
    1505
    Twitter-2010
    65
    4403

3.2.2 结论

  • Galaxybase 的最短路径查询性能,与 TigerGraph 相比,有数量级的优势且运行稳定不易出错。
3.3 全图算法查询测试

全图算法的运算需要遍历整个图,且计算结果描述的是整体的图特征。本次测试,我们取全图算法的三个例子进行测评比较:PageRank、弱连通子图和标签传播算法。

  • PageRank 算法是一种迭代算法,常用来衡量每个点相对于其它点的影响程度。每次迭代中算法都会遍历每条边,并为每个点计算一个得分值。经过多次迭代后,这些分值将趋于稳定。本次测试我们设置迭代次数为 10。
  • 弱联通子图(Weakly Connected Components)算法主要用于分析图结构,它描述图中所有可以互相连通的点、以及点之间的边的集合(如果是有向边则忽略其方向)。该算法要求遍历图中每个点和每条边,并会在图中找到且标记所有的弱联通子图。
  • 标签传播算法(Label Propagation Algorithm)是最快的社区检测算法。它可以依据图结构划分不同的社区。

3.3.1 测试结果

  • 基于相同数据集,各数据库执行常用图算法的耗时情况如下:
  • 测试项
    平均响应时间 (单位:秒)
    数据集
    算法名称
    Galaxybase
    TigerGraph
    Graph 500
    PageRank
    1.25
    11.49
    Weakly Connected Components
    0.60
    10.11
    Label Propagation Algorithm
    3.70
    33.32
    Twitter-2010
    PageRank
    54.21
    227.65
    Weakly Connected Components
    12.15
    247.01
    Label Propagation Algorithm
    164.51
    728.97
  • 测试结果性能对比柱状图如下:
  • 数据集为 Graph 500 时,各图算法平均响应时间(单位:秒)

    数据集为 Twitter-2010 时,各图算法平均响应时间(单位:秒)

3.3.2 结论

  • Galaxybase 和 TigerGraph 作为两款商业化图数据库,在算法支撑度上较为完善。
  • Galaxybase 的 PageRank 算法比 TigerGraph 快 4 到10 倍。
  • Galaxybase 的弱连通子图算法比 TigerGraph 快 4 到5 倍。
  • Galaxybase 的标签传播算法比 TigerGraph 快 2 到 3 倍。
3.4 查询性能小结
  • Galaxybase 在 K 跳邻居查询测试上是领先 TigerGraph 的,并且扩展度数越深,邻居数越多,Galaxybase 的优势越明显。
  • Galaxybase 在全图算法上,支持的类型多,并且优化的更好,直接体现就是执行速度更快。

4.压力测试

4.1 读写性能压力测试

读写性能压力测试,在 SF10 数据集下,虚拟出 100 个用户,同时对图数据库发送同一个类型的请求,该测试为检验图数据库并发性能的实用方法。

4.1.1 压测方法

使用 SF10 数据集,在 100 并发的情况下压测 5 分钟,压测的内容如下:

1. 查询点、边

2. 增加点、边

3. 修改点、边

4.1.2 样本选择

本次压测样本的选择策略如下:

1. 点样本:类型为 Comment,数据来自原数据集中所有点 id;

2. 边样本:边类型为 Person_Likes_Person,Person 指向 Post,数据来自原数据集中所有点id;

4.1.3 压力测试结果
  • 基于SF10 数据集,各图数据库执行不同压测项目的结果如下:
  • 测试项
    每秒处理请求数量 (单位:throughput/s)
    数据集
    测试内容
    Galaxybase
    TigerGraph
    SF10
    查询点
    36736
    1856
    查询边
    35356
    1921
    增加点
    35300
    5234
    增加边
    16169
    5066
    修改点
    35589
    5225
    修改边
    6881
    5077
4.2 读写性能压力测试小结
  • 在 100 并发情况下,除修改边测试项外,在其他测试项,Galaxybase 处理请求效率优于 TigerGraph。比如增加点测试项,Galaxybase 每秒能够处理35300 个请求,是TigerGraph的 19 倍左右。
创邻科技是国内首家全自主知识产权的商业图数据库供应商,提供多源异构数据的关联挖掘、深链查询、可视化分析及行业图智能计算应用服务。
home.official

商务咨询

400-882-6897

售前咨询

0571-88013575、0571-88016275

企业邮箱

partner@chuanglintech.com

媒体合作

Marketing@chuanglintech.com

地址

浙江省杭州市西湖区三墩镇振华路666号名栖首座6号楼605室

浙公网安备33010602011939号2019 浙江创邻科技有限公司 All Rights Reserved.
联系我们