2016-03-19 32 views
0

Yaklaşık 81MB CSV veriyle doldurulmuş bir veritabanım var.Neo4j 2.3.2 - veritabanı başlatılamadı

veri açıkça yaratmak istedik bazı örtülü ilişkileri vardır, bu yüzden aşağıdaki komutu çalıştırılmadan: Ben .log dosyasında bu mesajların çok görmeye başladık kod çalıştıran On

with range(0,9) as numbers 
unwind numbers as n 
match (ks:KbWordSequence) where ks.kbid ends with tostring(n) 
match (kt:KbTextWord {kbid: ks.kbid}) 
create (kt)-[:SEQUENCE]->(ks) 
create (ks)-[:TEXT]->(kt) 

:

2016-03-19 19:27:30.740+0000 WARN [o.n.k.i.c.MonitorGc] GC Monitor: Application threads blocked for 9149ms. 

bir süre bu GC iletilerini görme ve süreç RAM 6G sürebilir gördükten sonra pencere sürecini öldürüp tekrar ilişki oluşturmayı denemek gitti.

Bunu yaptığımda, aşağıdaki hatayı aldım ve veritabanı başlatılamıyor.

Starting Neo4j failed: Component '[email protected]' was successfully initialized, but failed to start. Please see attached cause exception. 

.log dosyasında veya görebileceğim diğer iletilerde bir hata yok.

Bu tür hataların diğer örnekleri, durumumda olmayan Neo4j db sürüm uyuşmazlığına karşılık geldi.

Bu durumdan nasıl kurtulurum?

cevap

0

Bu bildirimin, global bir işlemi tetiklediği için işlem çok büyüyor sanırım. Genel bir kural olarak

with range(0,9) as numbers 
unwind numbers as n 
match (ks:KbWordSequence) where ks.kbid ends with tostring(n) 
match (kt:KbTextWord {kbid: ks.kbid}) 
return count(*) 

~ 100k atom operasyonlara 10k iyi bir işlem boyutu: İlk amaçlanan operasyonun büyüklüğünü anlıyorum.

with range(0,9) as numbers 
unwind numbers as n 
match (ks:KbWordSequence) where ks.kbid ends with tostring(n) 
match (kt:KbTextWord {kbid: ks.kbid}) 
with ks, kt skip 0 limit 50000 
create (kt)-[:SEQUENCE]->(ks) 
create (ks)-[:TEXT]->(kt) 
return count(*) 

ve 0 değeri dönene kadar kez bu açıklama birkaç çalıştırın: O akıl ile skip ve limit işlem boyutunu kontrol için geçerlidir.

Gerçek kullanım durumuna bağlı olarak, atlama kullanımını önlemek ve henüz işlenmemiş düğümleri doğrudan eşleştirmede algılamak için daha etkili yaklaşımlar olabilir.

+0

bu birleşmenin bir "açıklamasının", KbTextWord'un 5001 kayıtları olduğunu ve KbWordSequence'ın 1281793 satırının olduğunu düşünürsek, bu işlemin ne kadar kayıt yapılacağını tahmin ettiği kayıt sayısı bakımından oldukça nefes kesiciti. –