Neo4J性能基准测试

时间:2013-03-01 06:31:59

标签: neo4j kundera

我已经在Neo4J(https://github.com/impetus-opensource/Kundera/tree/trunk/kundera-neo4j)上创建了高级客户端的基本实现,并希望将其性能与Native neo4j驱动程序(也可能是SpringData)进行比较。通过这种方式,我可以确定我的库放置本机驱动程序的开销。

我计划为Neo4J创建YCSB扩展。

我的问题是:什么应该被视为要写入neo4j的对象的基本单位(如果它是单个节点或由边连接的几个节点)。 Neo4J世界目前的做法是什么。人们如何对neo4j性能进行基准测试。

3 个答案:

答案 0 :(得分:4)

用Gatling对Neo4J进行基准测试已有一些工作:http://maxdemarzi.com/2013/02/14/neo4j-and-gatling-sitting-in-a-tree-performance-t-e-s-t-ing/

你可能会适应它。

答案 1 :(得分:3)

请参阅graphdb-benchmarks

项目graphdb-benchmarkmarks是流行图形数据库之间的基准。目前该框架支持Titan,OrientDB,Neo4j和Sparksee。此基准测试的目的是根据执行时间检查每个图形数据库的性能。基准测试由四个工作负载组成,即群集,大规模插入,单个插入和查询工作负载。每个工作负载都旨在模拟图数据库系统中的常见操作。

群集工作负载(CW): CW由用于模块化优化的众所周知的社区检测算法Louvain方法组成。我们在基准图形数据库之上调整算法,并采用缓存技术来利用图形数据库功能和内存执行速度。我们测量算法需要收敛的时间。

大规模插入工作负载(MIW):创建图形数据库并对其进行配置以进行大量加载,然后使用特定数据集填充它。我们衡量创建整个图表的时间。

单个插入工作负载(SIW):创建图形数据库并使用特定数据集加载它。每个对象插入(节点或边缘)都是直接提交的,并且图形是逐步构造的。我们测量每个块的插入时间,它包含一千个边缘和插入这些边缘时出现的节点。

查询工作量(QW):执行三个常见查询: FindNeighbours(FN):查找所有节点的邻居。 FindAdjacentNodes(FA):查找所有边的相邻节点。 FindShortestPath(FS):查找第一个节点和100个随机选择的节点之间的最短路径。

答案 2 :(得分:1)

性能测试的一种方法是使用例如http://gatling-tool.org/。正在进行工作以在http://ldbc.eu创建基准框架。否则,基准测试高度依赖于您的域数据集和您尝试执行的查询。也许你可以从https://github.com/neo4j/performance-benchmark开始并改进它?