Ich baue eine neo4j Grafik. Die Größe beträgt ca. 5 GB. Wenn ich eine Beziehung zu jedem Knoten hinzufügen möchte, indem ich eine Chiffrierabfrage wie match (a)-[:know]-(b),(b)-[:know]-(c) merge (a)-[:maybe_know]-(c)
verwende, erhalte ich einen GC overhead limit
Fehler. Ich möchte den Speicher für neo4j nicht erhöhen. Gibt es eine Möglichkeit, Knoten Schritt für Schritt zu aktualisieren? Wie zuerst, 5000 Knoten, dann weitere 5000 Knoten ... Oder haben Sie andere Vorschläge dazu?Neo4j GC Overhead Limit
Antwort
Wie @tobit sagt, schränken Sie Ihre Stapel auf etwas Überschaubares ein, aber auch nur Übereinstimmungen mit Dingen, die noch nicht abgeglichen wurden. wenn a
und c
bereits know
miteinander oder die maybe_know
-Beziehung bereits erstellt wurde, dann passen Sie sie nie wieder an. Yould könnte auch sicherstellen, dass die ID von einem größer als die andere ist, was sicherstellen würde, dass du nicht zweimal die gleiche Übereinstimmung machst (einmal in jede Richtung).
match (a)-[:know]-(b),(b)-[:know]-(c)
where a <> c
and not (a)-[:know|maybe_know]-(c)
and id(a) > id(c)
merge (a)-[:maybe_know]-(c)
limit 1000
Eine Frage, spielt die Position des LIMIT eine Rolle? Würde es eine Leistungsverbesserung geben, wenn wir nach dem WHERE mit einem LIMIT einen WITH verwenden würden, dann den Merge, oder kümmert es sich um die Optimierung unter der Haube? – InverseFalcon
Ich würde erwarten, dass sie ungefähr gleich sind. Eine Möglichkeit, dies herauszufinden, wäre jedoch, jede Version auf genau demselben Datensatz zu profilieren. –
- 1. Neo4j GC Overhead Limit überschritten
- 2. OutOfMemoryError: GC Overhead Limit überschritten Android
- 3. Fehler erhalten: java.lang.OutOfMemoryError: GC Overhead-Limit überschritten
- 4. Starten Sonar-Service - java.lang.OutOfMemoryError: GC Overhead Limit überschritten Ubuntu
- 5. GC-Overhead-Limit bei Abfrage von OrientDB überschritten
- 6. GC Overhead Limit überschritten nach der Bearbeitung von Gradle?
- 7. JAVA-Verarbeitungsdatei mit java.lang.OutOfMemoryError: GC-Overhead-Limit überschritten Fehler
- 8. Java GC Overhead Limit überschritten - Benutzerdefinierte Lösung benötigt
- 9. Eclipse stürzt ab mit einem GC Overhead Limit überschritten Fehler
- 10. GC Overhead Limit überschritten beim Füllen von Hashmap
- 11. Jmeter java.lang.OutOfMemoryError: GC-Overhead-Grenzwert überschritten
- 12. Gatling-Tool wirft GC-Overhead-Grenzwert überschritten
- 13. So beheben Sie diesen Fehler "GC-Overhead-Limit in Eclipse überschritten"
- 14. Gc Overhead-Limit überschritten wird nach dem Hinzufügen von Google Play Services-Bibliothek
- 15. GC-Overhead-Limit überschritten Fehler beim Verschieben von Daten aus temporärer Tabelle in Staging-Tabelle
- 16. Wie OutOfMemoryError (Java) zu beheben: GC-Overhead-Limit in r überschritten?
- 17. Wie zu lösen java.lang.OutOfMemoryError: GC Overhead-Limit überschritten Fehler in android Studio
- 18. Warum passiert das die ganze Zeit? Solr OutOfMemoryError GC Overhead Limit überschritten
- 19. Apache NiFi - OutOfMemory Fehler: GC Overhead Limit überschritten auf SplitText Prozessor
- 20. Integration Server geht nach unten werfen java.lang.OutOfMemoryError: GC Overhead Limit überschritten
- 21. Neo4j: GC Monitor: Anwendung Threads blockiert für
- 22. So entfernen Sie die Ausnahme im Thread "http-bio-8080-exec-5" java.lang.OutOfMemoryError: GC-Overhead-Limit überschritten?
- 23. GC Clojure/Java/JVM-Speichereinstellungen
- 24. Architektur: Wie GC overhead Problem beim Auffüllen von Hashmap zu überwinden
- 25. neo4j wie man ein distinct desc limit 10
- 26. Yesod devel cpu Overhead
- 27. java.lang.OutOfMemoryError: GC Obergrenze auf Scala überschritten
- 28. Techniken für konsistente GC Churn
- 29. GC-Pausendauer von GC-Protokollen
- 30. Aktualisieren einer Eigenschaft aller Knoten in Neo4j db führte zu nicht genügend Speicher
'LIMIT 5000' vielleicht? Wenn die Abfrage stabil ist (erzeugt jedes Mal die gleiche Reihenfolge), könnten Sie mit "SKIP 5000 LIMIT 5000" und dann mit "SKIP 10000 LIMIT 5000" usw. fortfahren. –