2016-02-15 3 views
-1

Je cherche des options pour la base de données graphique à utiliser dans un projet. Je m'attends à avoir ~ 100000 écritures (vertix + edge) par jour. Et beaucoup moins de lectures (plusieurs fois par heure). La requête la plus fréquente prend 2 tracés de profondeur d'arêtes que je compte retourner ~ 10-20 nœuds de résultat. Je n'ai pas d'expérience avec les bases de données graphiques et je souhaite travailler avec gremlin pour pouvoir basculer vers une autre base de données graphique si nécessaire. Maintenant, je considère 2 possibilités: neo4j et Titan. Comme je peux le voir il y a assez de communauté, d'information et d'outils pour Neo4j, donc je préférerais partir de là. Leur nombre de capacités devrait être suffisant pour nos besoins (~ 34 milliards de nœuds, ~ 34 milliards d'arêtes). Mais je ne suis pas sûr de ce que les exigences matérielles seront confrontées dans ce cas. Aussi, je n'ai vu aucune option de parallélisation pour leurs requêtes. D'autre part, Titan est construit pour l'extensibilité horizontale et a des intégrations avec des outils intensément parallèles comme les étincelles. Je peux donc m'attendre à ce que les exigences matérielles puissent évoluer de manière linéaire. Mais il y a beaucoup moins d'informations/communauté/outils pour Titan.Besoin de conseils pour choisir la base de données graphique

Je serai heureux d'entendre vos suggestions

Répondre

2

Sebastian a fait une bonne présentation merveilleuse comparant plusieurs bases de données à l'autre. Vous pourriez jeter un oeil à ses résultats dans here.

Un rapide résumé de la présentation est ici enter image description here

Pour repères sur chaque base de données de graphique avec différents ensembles de données, différentes tailles de noeuds et caches, s'il vous plaît jeter un oeil à ce Github repository par socialsensor. Juste pour vous le faire savoir, les résultats dans le repo sont un peu différents de ceux de la présentation.

Ma recommandation personnelle est:

  1. Si vous avez des poches profondes, optez pour Neo4j. Avec le support technique et facile de CIPHER, les choses iront assez vite. Si vous prenez en charge Open Source (et êtes patient pour ses cycles de développement), optez pour Titan DB avec le backend Amazon Dynamo DB. Cela vous donnera une extensibilité "infinie" et de bonnes performances avec les machines EC2 et les tables Dynamo. Vérifiez here for docs et here for their code pour plus d'informations.

+0

Merci pour la réponse. Pouvez-vous ajouter quelque chose concernant les exigences matérielles et la rentabilité pour le cas d'utilisation fourni? –

+0

@OlgaGorun Jetez un oeil ici pour le prix Neo4j http://neo4j.com/subscriptions/. Pour Titan/DynamoDB, regardez ici http://tinyurl.com/gpv9t43 –