2013-03-12 1 views
5

두 가지 테스트를 수행하고 있었습니까?색인 생성 여부와 상관없이 삽입 성능

Wes 등의 훌륭한 제안을 토대로 다중 캐시 환경에서 대규모 삽입을 수행 할 캐시가없는 neo4j 등록 정보를 조정했으며 성능이 나쁘지 않습니다.

그러나 색인을 도입하면 (노드에서) 성능이 크게 떨어집니다. 차이는 쉽게 5 배입니다. 더 나은 구성 설정이 있습니까? 사전에

감사합니다,

Sachin

Neo4j 버전 - 1.8.1; JVM - 1.6

답변

4

노드 (또는 관계)를 Lucene 색인에 삽입하는 것은 비용이 많이 듭니다. Lucene은 전체 텍스트/키워드 검색을 위해 설계된 강력하지만 복잡한 도구입니다. 노출 된 데이터베이스와 비교할 때, 다소 느립니다.

http://jexp.de/blog/2012/10/parallel-batch-inserter-with-neo4j/

일부도 우회하기 거래, 또는 직접 저장 파일을 작성 :

http://blog.xebia.com/2012/11/13/combining-neo4j-and-hadoop-part-i/

를 가장 대량 삽입 도구 마이클의 일괄 삽입과 같은 비동기 적으로 인덱싱을 할 이유

이입니다

성능을 향상 시키려면 SSD 디스크를 사용하는 것이 좋습니다. 그러나 Neo4j는 완전한 ACID 트랜잭션 데이터베이스이고 Lucene 인덱스는 트랜잭션 (좋은 점)과 밀접하게 결합되어 있으므로 최상의 쓰기 성능을 위해 인프라를 최적화하는 것 외에도 많은 작업을 수행 할 수 있습니다. 일부 거래의 안전을 거래함으로써

, 쓰기 성능 (USV/배터리 완충 시스템 또는 노트북에 무시할 수) :이 추가 답변 리눅스 하에서 된 ext4 파일 시스템에 Neo4j을 실행하는 사람을 위해 여전히 소용이 이런 경우에

+1

+1 좋은 권장 사항. 나는 C에서 저장소 파일을 직접 작성하는 프로그램을 만들고 있습니다. 하지만 인덱스를 처음부터 (또는 어쩌면) 지원할 계획이 없습니다. lucene 파일 형식을 아직 보지 못했습니다. OP는 자신의 대량 트랜잭션에서 노드 다음에 색인을 쓰는 것을 고려할 수 있습니다. –

+0

와우, 재미있는 소리. 최고의 Neo4j 인서트 성능 레이스가 시작되었습니다! :) –

+0

지금까지 1B 노드는 82 초 만에 등록되었습니다 (등록 정보가 없거나 사용하지 않았습니다!). 거의 rel가 작동합니다 - rel을 수행하는 데 더 많은 작업이 필요합니다. –

관련 문제