Question

Mon exigences de base à partir d'un graphdb:

  • Mature (prêt pour la production)
  • Liaison du langage .net ou C ++ natif
  • Évolutivité horizontale: les deux
    • Redondance des données automatisées et rupture
    • Algorithmes graphiques distribués / Exécution de la requête

Actuellement, j'ai disqualifié ce qui suit:

  • InfiniteGraph: pas de liaison du langage C ++ / .NET
  • Hypergraphdb: pas de liaison du langage C ++ / .NET
  • Microsoft Trinity: pas mature
  • Neo4j: non distribué

Je ne suis pas sûr de l'évolutivité des éléments suivants:

  • Sparsity Dex
  • Franz Inc. Allegrographe
  • SONES Graphdb

J'ai trouvé les informations disponibles sur les capacités d'évolutivité horizontale assez générales. Je suppose qu'il y a de bonnes raisons à cela.

Toute information serait appréciée.

Était-ce utile?

La solution

Malheureusement, vos exigences de base étendent déjà la compréhension générale des graphiques - même dans le monde universitaire. Aucune base de données Pure Graph répertoriée ne pourra satisfaire tous vos besoins. Les algorithmes de graphiques distribués qui sont conscients de gros graphiques distribués mais interconnectés sont toujours un grand problème de recherche. Donc, pour votre application, il peut être préférable de trouver une base de données de graphiques bien correspondante, une pile de traitement de graphe ou un magasin RDF et d'implémenter les pièces manquantes par vous-même. Lorsque votre application est principalement un traitement de graphe transactionnel en ligne (OLTP) (lire / écrire lourd) en mettant l'accent sur les sommets et que vous pouvez démissionner sur les algorithmes distribués pendant un moment, utilisez-en un:

  • Néo4j
  • Orientdb
  • Dex
  • Hypergraphdb
  • Infinitegraph
  • Infoger
  • Microsoft Horton

Lorsqu'il s'agit davantage de traitement analytique en ligne (OLAP) (principalement lu) toujours en mettant l'accent sur les sommets et la distribution compte vraiment: alors:

  • Apache Hama (projet de début)
  • Microsoft Trinity (projet de recherche)
  • Orbe d'or (bon, mais java seulement)
  • Signal / Collect (http://www.ifi.uzh.ch/ddis/research/sc, mais un projet de recherche)

Ou est-ce que son objectif est davantage sur les bords, le raisonnement logique / correspondance de motifs et vous avez besoin ou mieux de vivre avec une distribution à un niveau de bord comme dans le web sémantique, puis utilisez l'un de ces RDF- / Triple- / Quadstores:

  • Allegrographe (d'accord, ils sont un hybride GraphDB / RDF;)
  • Jena
  • Sésame
  • Stardog
  • Virtuose
  • ... et beaucoup plus de magasins RDF

De bons points de départ peuvent être Dex ou NEO4J: si vous recherchez un bon noyau GraphDB très rapide pour C ++ Dex pourrait être le meilleur, mais vous devrez implémenter beaucoup de choses de réseautage et de distribution par vous-même. Neo4j a beaucoup de distribution et de tolérance aux défauts, mais pour le moment plus sur un niveau de fragment de sommet et son noyau est Java. Pour les idées et l'inspiration sur la mise en œuvre d'algorithmes de graphiques distribués, jetez peut-être un coup d'œil à l'orbe d'or et à Signal / Collect. Une autre approche pourrait commencer par l'allègrographie ou la Stardog. Surtout, l'allegrographe pourrait être un peu délicat au début jusqu'à ce que vous soyez adopté à leur façon de penser. Stardog est encore jeune et Java, mais rapide et déjà assez mature.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top