2013-03-01 4 views
5

Neo4J (https://github.com/impetus-opensource/Kundera/tree/trunk/kundera-neo4j)를 통해 고급 클라이언트의 기본 구현을 작성했으며 네이티브 neo4j 드라이버 (및 아마도 SpringData)와 성능을 비교하려고합니다. 이렇게하면 내 라이브러리가 네이티브 드라이버에 걸리는 오버 헤드를 결정할 수 있습니다.Neo4J 성능 벤치마킹

Neo4J 용 YCSB 확장 프로그램을 만들 계획입니다.

제 질문은 neo4j에 쓰여지는 객체의 기본 단위로 간주되어야하는 것입니다 (단일 노드 또는 모서리로 연결된 두 개의 노드 여야합니다). Neo4J의 현재 상황은 무엇입니까? 사람들이 벤치마킹하는 neo4j 성능이 어떻게 그것을하고 있는지.

+1

조금 OT이지만 일반적으로 그래프 DB 벤치마킹에 대한 몇 가지 기사를 상기시켜줍니다. https://code.google.com/p/orient/wiki/GraphDBComparison 및 http : //ups.savba에 도움이 될 수 있습니다. sk/~ marek/gbench.html – ulkas

답변

1

성능 테스트의 한 가지 방법은 예를 들어. http://gatling-tool.org/. http://ldbc.eu에 벤치 마크 프레임 워크를 만드는 작업이 진행 중입니다. 그렇지 않으면 벤치마킹은 도메인 데이터 집합 및 수행하려는 쿼리에 크게 의존합니다. 어쩌면 https://github.com/neo4j/performance-benchmark에서 시작해서 개선 할 수 있을까요?

+0

죽은 링크 : https://github.com/neo4j/performance-benchmark – Relic

3

프로젝트 graphdb 벤치 마크 graphdb-benchmarks 인기 그래프 dataases 사이에 벤치 마크를 참조하십시오. 현재 프레임 워크는 Titan, OrientDB, Neo4j 및 Sparksee를 지원합니다. 이 벤치 마크의 목적은 실행 시간 측면에서 각 그래프 데이터베이스의 성능을 검사하는 것입니다. 벤치 마크는 클러스터링, 대량 삽입, 단일 삽입 및 쿼리 작업로드의 네 가지 작업 부하로 구성됩니다. 모든 작업 부하는 그래프 데이터베이스 시스템에서 일반적인 작업을 시뮬레이션하도록 설계되었습니다.

클러스터링 작업량 (CW) : CW는 모듈화 최적화를위한 잘 알려진 커뮤니티 검색 알고리즘 인 Louvain Method로 구성됩니다. 벤치 마크 된 그래프 데이터베이스 위에 알고리즘을 적용하고 캐시 기술을 사용하여 그래프 데이터베이스 기능과 메모리 내 실행 속도를 모두 활용합니다. 알고리즘이 수렴해야하는 시간을 측정합니다.

거대한 삽입 작업량 (MIW) : 그래프 데이터베이스를 만들고 대량로드하도록 구성한 다음 특정 데이터 세트로 채 웁니다. 우리는 전체 그래프의 생성 시간을 측정합니다.

SIW (Single Insertion Workload) : 그래프 데이터베이스를 만들고 특정 데이터 세트로로드하십시오. 모든 객체 삽입 (노드 또는 가장자리)은 직접 커밋되고 그래프는 점진적으로 생성됩니다. 블록 당 삽입 시간을 측정합니다.이 삽입 시간은 천 개의 가장자리와이 가장자리를 삽입하는 동안 나타나는 노드로 구성됩니다.

쿼리 워크로드 (QW) : FindNeighbours (FN) :이 세 가지 일반적인 쿼리를 실행하여 모든 노드의 이웃을 찾습니다. FindAdjacentNodes (FA) : 모든 모서리의 인접 노드를 찾습니다. FindShortestPath (FS) : 첫 번째 노드와 임의로 선택한 노드 사이의 최단 경로를 찾습니다.