5

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

我计划为 Neo4J 创建 YCSB 的扩展。

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

4

3 回答 3

4

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

你也许可以适应它。

于 2013-03-02T17:51:37.253 回答
4

参见graphdb-benchmarks

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

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

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

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

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

于 2015-03-09T14:26:34.227 回答
1

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

于 2013-03-01T12:20:02.553 回答