2013-03-01 21 views
5

Neo4J (https://github.com/impetus-opensource/Kundera/tree/trunk/kundera-neo4j) üzerinden üst düzey istemci temel bir uygulama oluşturdum ve performansını Native neo4j sürücüsü (ve belki de SpringData da) ile karşılaştırmak istiyorum. Bu şekilde, kütüphanemdeki genel yükü yerel sürücüyü belirlemeye karar verdim.Neo4J Performans Karşılaştırması

Neo4J için YCSB uzantısı oluşturmayı planlıyorum.

Soruma şudur: neo4j'ye yazılacak nesnenin temel birimi olarak düşünülmelidir (tek bir düğüm veya bir kenar tarafından birleştirilen birkaç düğüm olması gerekir). Neo4J dünyasında mevcut uygulama nedir. Neo4j performansını kıyaslayan insanlar bunu nasıl yapıyor?

+1

Biraz OT, ancak kendime genel olarak grafik db kıyaslaması ile ilgili bazı makaleler hatırlatırım, belki de yardımcı olur: https://code.google.com/p/orient/wiki/GraphDBComparison ve http: //ups.savba. sk/~ marek/gbench.html – ulkas

cevap

1

Performans sınamasının bir yolu, örn. http://gatling-tool.org/. http://ldbc.eu adresinde referans çerçeveleri oluşturmak için çalışma var. Aksi takdirde, kıyaslama, alan veri kümenize ve yapmaya çalıştığınız sorgulara büyük ölçüde bağımlıdır. Belki https://github.com/neo4j/performance-benchmark'dan başlayabilir ve üzerinde geliştirebilirsiniz?

+0

Ölü bağlantı: https://github.com/neo4j/performance-benchmark – Relic

3

proje graphdb-kriterler graphdb-benchmarks popüler grafik dataases arasında bir kriter, bkz. Şu anda çerçeve Titan, OrientDB, Neo4j ve Sparksee'yi destekliyor. Bu karşılaştırmanın amacı, her bir grafik veritabanının performansını yürütme süresi açısından incelemektir. Bu kriter dört iş yükünden, Kümeleme, Masif Yerleştirme, Tek Yerleştirme ve Sorgu İş Yükünden oluşur. Her iş yükü, grafik veritabanı sistemlerinde ortak işlemleri simüle etmek için tasarlanmıştır.

Kümelenme Yükü (CW): CW modülerlik optimizasyonu, Louvain yöntem için iyi bilinen bir topluluk tespit algoritması içermektedir. Algoritmayı, karşılaştırmalı grafik veritabanlarının üzerine uyarlıyoruz ve hem grafik veritabanı yeteneklerinden hem de bellek içi yürütme hızından yararlanmak için önbellek tekniklerini kullanıyoruz. Algoritmanın yakınsama zamanını ölçüyoruz.

Masif Ekleme İşyükü (MIW): Grafik veritabanını oluşturun ve büyük yükleme için yapılandırın, ardından belirli bir veri kümesiyle doldurun. Tüm grafiğin oluşturulma zamanını ölçeriz.

Tek Yerleştirme İş Yükü (SIW): Grafik veritabanını oluşturun ve belirli bir veri kümesiyle yükleyin. Her nesne ekleme (düğüm veya kenar) doğrudan işlenir ve grafik aşamalı olarak oluşturulur. Bin kenardan oluşan blok başına ekleme süresini ve bu kenarların yerleştirilmesi sırasında ortaya çıkan düğümleri ölçüyoruz.

Sorgu İş Yükü (QW): FindNeighbours (FN): üç genel sorguları Yürütme bütün düğümlerin komşuları bulur. FindAdjacentNodes (FA): tüm kenarların bitişik düğümlerini bulur. FindShortestPath (FS): ilk düğüm ve rastgele seçilen 100 düğüm arasındaki en kısa yolu bulur.