J'ai quelques tests d'intégration utilisant TinkerGraph (en mémoire) qui prennent chacun 10-15 secondes pour finir. De surveillance, en utilisant VisualVM, j'ai compris que la principale cause de retard est due à TraversalHelper.getLabels()
et TraversalHelper.getTraversals()
méthodes.TinkerGraph getLabels() et getTraversals() rendent les tests plus lents
Je m'attendais à ce que TinkerGraph soit en mémoire pour être rapide mais il se peut que je fasse quelque chose de mal ou qu'il y ait effectivement un problème de performance. Mes autres tests sont à moins de 200ms. Toute aide est appréciée!
Voici une requête qui prend 5+ secondes pour créer 51 sommets avec environ 4-5 propriétés chacune reliées entre elles par 89 arêtes:
MISE À JOUR: Performance dans mon les tests ont été améliorés de ~ 40s à ~ 6s pour les tests en mémoire et de 2mins à moins de 1min en utilisant DSE après avoir utilisé les nouveaux 3.2.5-SNAPSHOT et 3.3.0-SNAPSHOT (de http://repository.apache.org/snapshots/). Pour plus de détails, vous pouvez jeter un oeil ici: https://issues.apache.org/jira/browse/TINKERPOP-1642. Je voudrais dire un grand merci à stephen mallette pour son action rapide et précise qui a permis d'améliorer les performances non seulement pour les traversées gremlin en mémoire mais aussi pour toutes les autres technologies de graphe sur disque qui utilisent gremlin par-dessus.
Quelle est la nature de vos tests? Quelle est la taille de votre graphique de test (c'est-à-dire le nombre d'arêtes)? –
moins de 20 sommets et arêtes. Le test consiste simplement à créer un sous-graphe et à l'insérer dans une seule traversée .. Chaque sommet a un label avec as() J'enverrai les requêtes dans un bit. merci :) –
Cela semble étrange. Une traversée de plus de 20 sommets/arêtes ne devrait pas prendre plus de 10 secondes sur TinkerGraph. Si j'étais vous j'ouvrirais une console de Gremlin, créerais mon graphique de 20 vertex/edge dans TinkerGraph et exécuterais alors les parcours que vous testez pour voir si vous obtenez la même vitesse lente. Si vous le faites, modifiez votre question pour inclure le code Gremlin pour créer le graphique et la traversée causant le problème. Si vous n'obtenez pas la même vitesse lente, vous devez avoir quelque chose d'étrange dans votre environnement de test et vous devrez isoler cela plus avant. –