web-dev-qa-db-fra.com

quelqu'un a essayé neo4j vs titan - avantages et inconvénients

Quelqu'un peut-il fournir ou indiquer une bonne comparaison entre Neo4j et Titan? Une chose que je peux voir est en termes d'échelle - Titan est évolutif et nécessite une banque de données évolutive sous-jacente comme cassandra. Neo4j est uniquement pour HA et possède sa propre base de données intégrée. D'autres avantages et inconvénients? Toutes les utilisations spécifiques. (Titan est-il utilisé quelque part actuellement?)

J'ai également le lien suivant: http://architects.dzone.com/articles/16-graph-databases-compared qui donne une comparaison objective pour les bases de données graphiques mais pas beaucoup sur les avantages et les inconvénients entre Neo4j et Titan.

62
DevD

Nous avons un graphique social dans lequel, en une journée, nous ajoutons près de 1 million de nœuds et deux fois plus de bords. Nous avons commencé avec le graphe neo4j car oui, il est très rapide car son stockage est sur la même machine sur laquelle tourne le moteur graphique. Mais voici les expériences que nous aimerions partager avec vous à propos de neo4j.

  1. Pas bon pour une requête en temps réel. Nous avons une structure sociale comme Twitter. Nous devons afficher les 20 dernières activités (et les activités associées) de tous les utilisateurs qu'un utilisateur suit sur sa chronologie. Nous avons quelques utilisateurs qui suivent plus de 1000 utilisateurs. La requête gremlin que nous avons écrite pour cela (si vous êtes intéressé, nous pouvons partager la requête gremlin) a vraiment produit tellement de GC qu'un serveur avec 8 cpu et 48 Go de RAM utilisé pour geler et nous avons dû redémarrer le serveur pour le remettre en ligne .
  2. Plusieurs partitions réseau observées.
  3. Il n'y a pas d'index centré sur les sommets qui est très nécessaire dans la base de données graoh.

En fin de compte, nous sommes tellement fanés par les performances du serveur avec la requête gremlin que nous avons dû changer la base de données en titan.

Sur Titan, nous obtenons des performances raisonnables et la mise à l'échelle est très facile car nous utilisons cassandra comme stockage backend. Mais n'oubliez pas que .. l'utilisation de gremlin ici n'est également pas une bonne idée car la requête multiget est très moche à écrire et sans multiget sa requête devient très lente.

26
user2772346

Ravi de vous voir explorer les bases de données graphiques. Je vais parler de la partie Neo4j de votre question:

Plus de 30 des Global 2000 utilisent désormais Neo4j en production pour un large éventail de cas d'utilisation, dont beaucoup sont surprenants, même pour nous! (Et nous avons inventé le graphique des propriétés!)

Une liste partielle des clients se trouve ci-dessous: www.neotechnology.com/customers

Neo4j est en production 24h/24 et 7j/7 depuis 10 ans, et bien que le produit ait bien sûr considérablement évolué depuis lors, il repose sur une base très solide.

La plupart des entreprises qui migrent vers des bases de données graphiques - parlant pour Neo4j, ce que je sais - le font parce que a) leurs SGBDR n'étaient pas en mesure de gérer la portée et l'échelle de leurs exigences de requête connectée, et/ou b ) l'immense commodité et rapidité qui découlent de la modélisation de domaines qui sont un graphique (social, gestion de réseau et de centre de données, fraude, portefeuilles, identité, etc.) sous forme de graphique, pas sous forme de tableaux.

Pour les coups de pied, vous pouvez trouver un certain nombre de discussions avec les clients ici, parmi les quatre (bientôt cinq) conférences GraphConnect qui ont eu lieu cette année dans les grandes villes du monde:

http://watch.neo4j.org/

Si vous êtes à Londres, le dernier aura lieu la semaine prochaine: http://www.graphconnect.com

Vous trouverez ci-dessous un résumé de certaines des technologies derrière Neo4j, avec quelques exemples de clients. Pour répondre très directement à votre question sur la mise à l'échelle: Neo4j possède une architecture unique conçue pour maximiser le temps de réponse aux requêtes et la prévisibilité des requêtes, en permettant une mise à l'échelle horizontale de telle sorte que chaque instance puisse accéder au graphique sans avoir à sauter sur le réseau. (Besoin de plus de débit de lecture. Ajoutez simplement des instances.) Il s'avère que cette approche fonctionne bien pour 95 +% des graphiques, y compris certains clients de production qui ont plus de la moitié du graphique social Facebook en cours d'exécution dans un seul cluster Neo4j, sauvegarde d'un site Web "toujours actif" 24h/24, 7j/7.

www.neotechnology.com/neo4j-scales-for-the-enterprise/

L'un des plus grands services de livraison postale au monde effectue tout son routage de colis en temps réel avec Neo4j. Les chemins de fer construisent des systèmes de routage sur Neo4j. Certains des plus grands clients du monde les utilisent pour la gouvernance des RH et des données, le routage alternatif, la gestion des réseaux et des centres de données, la détection des fraudes en temps réel, la bioinformatique, etc.

Le langage de requête Cypher de Neo4j est le seul langage de requête déclaratif construit expressément pour les graphiques de propriétés. Il prend toutes les leçons apprises de notre natif de 13 ans Java API (qui était la base de Blueprints, que certaines des autres bases de données graphiques ont depuis adopté) et les transforme en une prochaine -generation language. Cypher est un excellent moyen d'apprendre des graphiques et de développer des applications, et il y a toujours la native Java API si vous avez des besoins spéciaux ou si vous appréciez les performances "bare metal" par rapport à la milliseconde à un chiffre) performances supérieures à la commodité. Neo4j est conçu dès le départ pour prendre en charge les graphiques, et dispose d'un moteur de stockage de graphiques conçu pour stocker les graphiques; architecturés comme des bibliothèques de graphes au-dessus des bases de données non graphiques et soumis à certaines des limitations inhérentes (par exemple, FlockDB, car il est basé sur MySQL, sera toujours très lent pour tout ce qui dépasse un saut).

N'hésitez pas à contacter l'équipe Neo si vous avez besoin de quelque chose de plus spécifique. Nous serons ravis de vous aider! http://info.neotechnology.com/ContactUs.html

Bonne chance!

16
Philip Rathle