Raf a écrit 3 commentaires

  • [^] # Re: Pourquoi Python 2.7 ?

    Posté par  . En réponse à la dépêche Meetup Python à Nantes le 09 avril : GrapheekDB une base de données graphe rapide en Python !. Évalué à 0.

    La nouvelle version (0.0.12) est désormais compatible avec Python2.7, Python3.3, Python 3.4.

  • [^] # Re: Titre trompeur...

    Posté par  . En réponse à la dépêche Meetup Python à Nantes le 09 avril : GrapheekDB une base de données graphe rapide en Python !. Évalué à 1.

    Oui, la rapidité vient essentiellement de l'utilisation d'une base Key/Value Store en backend mais également d'une dénormalisation importante des données stockées (au niveau du KVS).

    Ensuite, comme toujours, la rapidité est toute relative, puisque dépendante du contexte d'utilisation, dans un des cas ptatiques d'utilisation, il s'agissait d'implémenter un algorithme de recommandation, dont la performance dépendait directement de la capacité de l'outil à traverser des liens entre des entités et dans ce contexte, j'ai pu obtenir des performances bien supérieures à des bases existantes (Neo4j, Titan et même ArangoDB), ce n'est pas un troll : j'ai parfaitement conscience que GrapheekDB est très loin d'avoir le périmètre fonctionnel de ces bases mais dans ce cas pratique, la perf était clairement meilleure.

    Accessoirement, la vitesse n'est pas le seul objectif de l'outil : il s'agissait aussi d'offrir une solution en "pur python" (l'utilisation d'un KVS rend l'expression toute relative) pour rendre persistent un graphe. A ce titre, j'ai initialement utilisé NetworkX qui permet, bien sûr, de sauvegarder un graphe mais on doit le recharger en mémoire à chaque utilisation ce qui peut rapidement dégrader les performances dès que l'on commence à travailler sur des millions de noeuds et des dizaines de millions de liens.

    Autre point : le projet est actuellement en version 0.0.11 alpha ce qui ne signifie pas pour autant qu'il n'est pas utilisable ou insuffisamment testé (au contraire : j'essaie à chaque release d'avoir une couverture très importante), cela signifie simplement que l'API peut encore évoluer (pas de garanties pour l'instant de compatibilité ascendante) et qu'il reste des points à ajouter en terme de perf et de fonctionnalités.

    Mais, en conclusion, comme le faisait remarquer Alexandre, le mieux est de tester :)

  • [^] # Re: Pourquoi Python 2.7 ?

    Posté par  . En réponse à la dépêche Meetup Python à Nantes le 09 avril : GrapheekDB une base de données graphe rapide en Python !. Évalué à 1.

    Disclaimer : je suis l'auteur de GrapheekDB.

    En effet, le fait que, pour l'instant, l'outil ne soit disponible que pour Python 2.7 vient de l'indisponibilité de gevent sous Python 3, j'ai prévu de porter le projet sur Python 3 dans les semaines à venir (avant le meetup de Nantes) en supprimant la dépendance gevent et en passant sur une implémentation "plus classique" à base de threads et sockets.