暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

秒懂|图数据库权威基准测试:LDBC-SNB测试流程最详解!

原创 will2334 2022-10-19
1721

相信接触过图数据库的同学一定或多或少的了解到LDBC,然而市场上关于这个神秘国际组织的信息依然非常匮乏,鉴于此,我们整理了关于LDBC及其SNB测试的9个问题。通过回答这些问题,由浅入深,逐步展开LDBC基准测试的全貌。


问题包括:

1.LDBC是什么?

2.LDBC提供的基准有哪些?

3.LDBC-SNB测试方案是怎么样的?

4.SF(Scale Factor) 是什么

5.SNB测试中提到了BI,IS,II是什么?

6.LDBC SNB如何保证每个数据库测试方式一样呢?

7.如何使用LDBC驱动连接到不同的数据库?

8.如何对测试结果进行对比?

9.整体流程是怎么样的?


1. LDBC是什么?

LDBC全称Linked Data Benchmark Council,国内一般翻译成链接数据基准委员会或关联数据基准委员会。这是一个非营利组织,目的是定义标准的图基准,以促进围绕图处理技术的社区发展。LDBC的成员来自工业界和学术界,包括组织和个人。像Neo4j,Tiger,Oracle等主要的图数据库提供商都有参与其中,值得一提的是,中国图数据库公司像蚂蚁集团,创邻科技,海致星图等公司也是LDBC的成员。总而言之,我们可以认为LDBC是一个国际认可的图处理基准制定委员会。


2. LDBC提供的基准测试有哪些?

Graphalyitcs(LDBC-GRAPHALYTICS)

提供了6个常用图算法的测试,并提供的内容中包括算法的实现、数据、标准答案,6个算法分别为:

  • BFS

  • PageRank

  • 弱连通

  • 标签传播

  • 局部聚类系数

  • 最短路径

Semantic Publishing Benchmark(LDBC-SPB)

基于RDF的语义数据库基准测试,通过同时执行CRUD(创建、读取、更新、删除)操作来衡量性能,这部分和知识图谱相关性高,没有做具体研究。

Social Network Benchmark Suite (LDBC-SNB)

简称SNB是在社交图中进行模拟真实查询场景,来衡量数据库性能。比如:提供一张微博关系社交图,我们查找在圣诞节发微博最多的人,具有实际意义的查询,模拟该查询能更好的体现数据库在实际场景中的性能。

LDBC Financial Benchmark (LDBC-FINBENCH)

顾名思义是用于反欺诈和风控等金融相关的测试场景,正在制定中,预计2022年底发布。


简单的说: LDBC是图基准委员会,官方提供不同规模的数据、样本、测试方案、测试结果,图数据库按照它所提供内容进行测试,从而起到横向对比图数据库性能的作用。


3.LDBC-SNB测试方案是怎么样的?

LDBC-SNB是目前接受审计最多的基准测试,先后被蚂蚁的TuGraph和创邻科技的Galaxybase创造纪录.

LDBC提供给我们的社交图schema如下:


其中点数据包含:人、论坛、博文、评论、标签、地址等

边:人与人之间的认识关系、人发博文、评论

我们可以把这个图想象成微博,里面用户和用户有关注关系,用户可以发微博,用户也可以在别人的微博上评论,这样一张关系图谱。

4.SF(Scale Factor) 是什么?

LDBC用Scale Factor (sf) 比例因子来表示图的大小。Scale Factor 1 (sf1)表示原数据大小1GB,Scale Factor 100 (sf100)表示原数据大小100GB,当然也有 Scale Factor 0.1,Scale Factor 10000,Scale Factor 30000。

官方提供数据生成器,可以针对指定数据集大小进行生成数据,每次生成的数据唯一(不存在随机性),保证了测试的可比性。一张图可大可小,可以根据需要的数据量在生成器中输入需要的SF数值。当数据量大时,支持分布式生成数据,同时在生成数据的同时会将配套样本生成(用于driver验证,后面会解释)。

LDBC SNB提供了 0.1, 0.3, 1, 3, 10, 30, 100, 300, 1000各个规模的常规数据生成器,对10000,30000的超大数据集来说暂时不支持,要年底才会产出新的生成器。


5.SNB测试中提到了BI,IS,II是什么?

LDBC-SNB包含两测试部分(可单独测试)一个是Interactive(交互查询)另一个是Business Intelligence(商业智能)。

Interactive

  • Interactive complex reads(复杂查询IC)

  • Interactive short reads(简单查询IS)

  • Interactive insert updates(插入II)


  • 这三种类型的测试项具有多个,分别是IC1~IC14、IS1~IS7、II1~II8,查询为局部查询。

  • 比如:查找指定Person发的博文总数。


  • Business Intelligence

Business Intelligence(商业查询)

目前BI这一项,是BI1~BI25。此查询为全图查询。比如:查找在指定时间内发表博文最多的人。


这里举个IS的例子,给定一个人的id,查找该人的身份信息及他所在的城市,这就是一个局部查询。这种局部查询即使图的规模的增长,但查询的性能不会变化太多。


同样,这里举一个BI的例子,给定一个时间,查找该时间范围以内的所有消息,这就是一个全局查询,因为它是要遍历整幅图中所有的消息点,然后找出符合该时间范围内的点,这种全局查询会随着图的规模的增长,查询时间也会增长。


6.LDBC SNB如何保证每个数据库测试方式一样呢?

LDBC SNB提供了Driver测试驱动(不能修改)

• 读样本(数据生成器产生的-用于数据校验)

• 写结果

• 并发请求

• 性能汇总

• 对比正确性

所有数据库进行LDBC测试就需要使用这个驱动,保证测试的方式一致。这是一个黑盒我们只要拿来用就可以。


同时,LDBC SNB提供了配置文件(只要配置文件一致,每次测试一致),这部分可以进行自定义,包含:

• 测试数量

• 并发数

• 测试项比例(IC&IS的比例)

• 压缩比

压缩比:LDBC是在模拟真实环境的请求,默认是1,如果想让请求的频率更高,可以调整压缩比,把两个测试项之间的请求间隔时间缩小。

比如:A请求与B请求默认间隔5s,当把压缩比从1调整成0.5时,两个请求的间隔就会变成2.5s,从而影响测试的吞吐率。


7.如何使用LDBC驱动连接到不同的数据库?

不同的数据库有不同的连接,写入,读取和调用方式。LDBC提供图数据库适配工具可以实现各自数据库的个性化配置。

1.数据库连接

有些数据库是bolt的连接、有些数据库是socket连接,不同数据库连接方式不一样。在配置工具可以进行调整。

2.样本处理

拿IC2举个例子:


这个测试项需要传入personId和maxDate

有些数据库写入方式为 “00001,12345”,另一个数据库可能为“00001|12345” 为了各个数据库的特性,适配项目是可以对驱动读出来的样本进行处理。返回结果和此处同理。

3.调用语句

不同的数据库有不同的调用语句,常用的方式有Cypher,Gremlin,plugin等方式。


8.如何对测试结果进行对比?

在测试数量、并发数、测试项比例(IC&IS的比例)相同情况下,对比:

平均响应时间:sum(每个请求从发送到接收结果的时间) / 总个数

吞吐量:总个数 / 总执行时间

超时率:这里和前文提到的压缩比有关,比如压缩比为1时,假定同一测试项的发送请求间隔为100ms,若压缩比改为0.5,则发送请求间隔变成50ms。因此压缩比越小,发送请求越频繁,吞吐量则越高,对图数据库的性能要求越高。

在此基础上添加了超时机制。每个测试项都有固定预期发送请求的时间,如果因为前面的请求回来慢了,因为并发数满了,无法发下一个请求,导致下一个请求的实际发送时间超过预期时间1s,这个请求就算超时。若超时比例超过5%,则该次测试不通过。

注意:官方允许出现5%的超时,在测试数量,并发数,测试项比例相同的环境下(当然硬件也相同),超时率一致(比如都为0%)吞吐量越高,性能越好。


9.整体流程是怎么样的?

整体流程如下图,其中绿色部分是LDBC提供的内容,橙色为数据库提供的内容


参考LDBC基准测试规范,图数据库实现以自己的方式实现案例并以自己的调用方式执行。

利用LDBC数据生成器,生成指定SF大小的数据导入到数据库中,在生成SF的数据同时,数据生成器也会生成一份数据样本给Driver做为基准测试请求的内容。

图数据实现依赖于Driver的适配项目,与图服务端通信请求,并返回结果至Driver校验统一处理,最后的报告结果都是由Driver产出的。


总结

LDBC是国际权威的图数据处理基准制定机构,LDBC官方提供不同规模的数据、样本、测试方案、测试结果,图数据库按照它所提供内容进行测试,可以对比图数据库的能力。其中,SNB测试数据采用社交数据,操作丰富,混合特性合理,满足了简单查询,复杂查询,实时更新等特性,相比于单项测试的测评,能够更好地贴近真实的业务查询场景,同时展现出图数据库系统的并发执行能力和事务处理能力的真实实力,从而给图数据库性能横向对比的基准。

然而我们发现LDBC测试存在被滥用的现象,部分厂商不按照标准测,对测试随意剪裁,并对其结果进行夸大性宣传。只有通过LDBC官方审计的测试结果我们认为才是有效的。官方审计结果我们可以通过点LDBC官网进行查看。

目前记录的前两位保持者是中国的蚂蚁集团创邻科技,我们可以看出中国在基础软件-图数据库领域有着深厚的技术积累,希望有更多的厂家参与到LDBC测试中,让整个图生态越来越好。

特别感谢Superice同学对于文章内容的收集,校正与技术支持。

最后修改时间:2022-10-19 11:36:36
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论