1. 测试对象
为测评图数据库 GaiaDB-G的性能情况,我们选取neo4j(开源社区热度较高的数据库),hugegraph(百度安全团队发布的开源数据库),进行性能对比。
- GaiaDB-G V1.3.1 发布版
- Neo4j V3.4.10 社区版
- Hugegraph V0.7.4 开源版,使用rocksdb做存储引擎
2. 测试方法
数据集:采用斯坦福sol-Pokec数据集,约 163w 节点、3062w 关系,作为数据库的基础数据集,参考: http://snap.stanford.edu/data/soc-Pokec.html
场景:基于数据集构造50w的检索query语法,采用发压线程分别为16线程、32线程、64线程情形下,测试下列四中检索场景的性能(qps)并进行对比:
实体检索
| 图数据库 | 语法 |
|---|---|
| GaiaDB-G | g.query().has(‘sid’,MATCH,’${sid}’).with(‘completion_percentage’) |
| Neo4j | MATCH(n:People{id:’${sid}’}) RETURN n.completion_percentage; |
| Hugegraph | hugegraph.traversal().V(‘4:${sid’).values(‘completion_percentage’) |
一层图游走
| 图数据库 | 语法 |
|---|---|
| GaiaDB-G | g.query().has(‘sid’,MATCH,’${sid}’).out.limit(1).with(‘completion_percentage’) |
| Neo4j | MATCH(n:People{id:’${sid}’}) -->(n2:People) RETURN n2.completion_percentage limit 1; |
| Hugegraph | hugegraph.traversal().V((‘4:${sid’).out().limit(1).values(‘completion_percentage’) |
二层图游走
| 图数据库 | 语法 |
|---|---|
| BGraphGaiaDB-G | g.query().has(‘sid’,MATCH,’${sid}’).out.limit(1).out.limit(1).with(‘completion_percentage’) |
| Neo4j | MATCH(n:People{id:’${sid}’})–>(n2:People) with n2 LIMIT 1 MATCH(n2)–>(n3:People) RETURN n3.completion_percentage limit 1 |
| Hugegraph | hugegraph.traversal().V((‘4:${sid’).out().limit(1).out().limit(1).values(‘completion_percentage’) |
三层图游走
| 图数据库 | 语法 |
|---|---|
| GaiaDB-G | g.query().has(‘sid’,MATCH,’${sid}’).out.limit(1).out.limit(1).out.limit(1).with(‘completion_percentage’) |
| Neo4j | MATCH(n:People{id:’${sid}’})–>(n2:People) with n2 LIMIT 1 MATCH(n2)–>(n3:People) with n3 LIMIT 1 MATCH(n3)–>(n4:People) RETURN n4.completion_percentage limit 1 |
| Hugegraph | hugegraph.traversal().V((‘4:${sid’).out().limit(1).out().limit(1).out().limit(1).values('completion_percentage‘) |
备注:hugegraph在实际压测过程中,采用50w query压力测试比较慢,我们尝试测试了20w的情形仍然较慢,这里选用10w query进行压测。
3. 测试配置
我们这里选用百度内部常见的服务器配置作为测试环境,参数如下:
| 参数 | 配置 |
|---|---|
| CPU | 【Intel Xeon Gold 5117 processor 14C 2.0GHZ】*2 |
| MEM | 【LANGCHAO DDR4-2666 32G】*6 |
| DISK | 【LANGCHAO SATA 4T 7.2K】*4 |
| SSD | 【LANGCHAO NVMe SSD 1T】*1 |
4. 测试结果
我们将实测结果列统计到下列表格中。

5. 分析与结论
根据上面的分析,我们选取64线程性能结果画柱形图,如下图所示。从图中可以看到,GaiaDB-G的性能远超Neo4j和Hugegraph,在实体查询时,GaiaDB-G性能是Neo4j的3.48倍,是Hugegraph的1.59倍;游走遍历层数越大,GaiaDB-G的性能优势更加明显,三层游走时,GaiaDB-G性能是Neo4j的7.9倍,是Hugegraph的53.9倍。

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




