Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

more neo4j report stuff

  • Loading branch information...
commit b76ac038d013c8951dc0e53a8c1aafffa05fd0d8 1 parent d1b09e1
Martin Junghanns authored March 12, 2012
BIN  docs/report/ir15_report.synctex.gz
Binary file not shown
13  docs/report/ir15_report.tex
@@ -292,7 +292,7 @@ \subsubsection{Traversal API}
292 292
 
293 293
 \subsubsection{Cypher}
294 294
 
295  
-Eine dritte Möglichkeit, Anfragen an die Graphdatenbank zu stellen, stellt die deklarative Sprache \textit{Cypher} dar. Sollen beispielsweise alle Nachbarn eines Knotens mit der ID 3  abgefragt werden, die über eine ausgehende Kante mit diesem Knoten verbunden sind, bietet sich folgende Query an:
  295
+Eine dritte Möglichkeit, Anfragen an die Graphdatenbank zu stellen, bietet die deklarative Sprache \textit{Cypher}. Sollen beispielsweise alle Nachbarn eines Knotens mit der ID 3  abgefragt werden, die über eine ausgehende Kante mit diesem Knoten verbunden sind, bietet sich folgende Query an:
296 296
 \begin{lstlisting}
297 297
 START n=node(3) MATCH (n)-->(x) RETURN x
298 298
 \end{lstlisting}
@@ -327,14 +327,21 @@ \subsubsection{Cypher}
327 327
 
328 328
 \subsection{Einschränkungen}
329 329
 
330  
-Cypher, Traverser Speicherprobs, keine Optimierung
  330
+Wie im vorhergehenden Abschnitt gezeigt, ist Cypher eine einfache Möglichkeit, Abfragen auf Graphen zu formulieren. Da es sich bei der Sprache jedoch um ein noch junges Feature in Neo4j handelt, wird der Schwerpunkt momentan noch auf korrekte Funktionalität und weniger auf optimierte Ausführung gelegt. Dies führte dazu, dass bei umfangreichen Graphen die Performance im Vergleich zur nativen API deutlich geringer war und es darüber hinaus oft zu Speicherüberläufen kam. Letzteres trat auch bei der Verwendung der Traverser API auf. Wie bereits beschrieben, werden Knoten standardmäßig nur einmal besucht. Für verschiedene Graphen ist das Erkennen von Zyklen jedoch entscheidend, weswegen das mehrmalige Besuchen von Knoten erlaubt werden muss. In diesem Fall kam es häufig zu Speicherüberläufen, was vermutlich auf die Implementierung der Traverser API zurückzuführen ist.
331 331
 
332 332
 \subsection{Dokumentation}
333 333
 
334  
-\subsection{Aussicht}
  334
+Von den verglichenen Graphdatenbanken weist Neo4j die mit Abstand beste und aktuellste Dokumentation auf. Neben grundlegenden Tutorials wird auf alle Features der Datenbank im Detail eingegangen. Darüber hinaus finden sich in der Dokumentation Hinweise zur Optimierung der Performanz.
  335
+
  336
+Neben der Dokumentation bietet Neo4j eine Mailing Liste, sowie einen IRC Channel an. Letzterer ist jedoch nur mäßig frequentiert, aktuelle Informationen und Support erhält man vorrangig über die aktive Mailing Liste. Von uns gestellte Fragen wurden umgehend beantwortet.
335 337
 
  338
+Es zeigt sich deutlich, dass Neo Technologies an einer aktiven Beteiligung der Community interessiert ist: Auf Feature-Wünsche wird eingegangen, externe Blog-Beiträge werden auf der Website verlinkt und die Nutzer werden nach Meinungen und Erfahrungen mit neuen Features wie bspw. Cypher gefragt.
  339
+
  340
+\subsection{Aussicht}
336 341
 
  342
+Wie auch OrientDB und DEX unterliegt Neo4j einer ständigen Weiterentwicklung. Während der Durchführung des Praktikums wurden zwei neue Versionen der Datenbank veröffentlicht, in denen neben Fehlerbehebungen auch verschiedene Optimierungen Einzug in die Software hielten.
337 343
 
  344
+Durch die kurzen Relase-Zyklen wird zum Einen eine permanente, stetige Entwicklung suggeriert, zum Anderen empfiehlt es sich, wie bei jedem anderen Softwareprodukt auch, ausschließlich die als final deklarierten Versionsstände in Produktivumgebungen einzusetzen. Neo4j bietet neben der Community Version auch kommerzielle Versionen der Datenbank an, welche zusätzliche Features zur Replikation und der damit verbundenen Hochverfügbarkeit anbieten.
338 345
 
339 346
 \section{OrientDB}
340 347
 

0 notes on commit b76ac03

Please sign in to comment.
Something went wrong with that request. Please try again.