Quelle API est la plus rapide dans un contexte distant.

42 views
Skip to first unread message

Jérôme Baton

unread,
Mar 6, 2014, 4:35:33 AM3/6/14
to neo...@googlegroups.com
Bonjour,

Je me demande quel est le meilleur moyen pour communiquer avec le serveur en Java.

J'ai vu que la remote api n'est plus à utiliser. 
J'utilise donc un wrapper java autour de la REST API   https://github.com/neo4j/java-rest-binding

Il est vrai que j'abuse un peu du truc en voulant insérer 4M de personnes :) avec environ 70 propriétés chacun et que je relie à un autre noeud (que je dois chercher à chaque fois, avec même API)
mais voila c'est en local, avec mon chargeur de CSV perso qui tourne depuis ...hum... longtemps.

Donc, dans un contexte d'autohébergement avec les serveurs www séparés du/des serveurs Neo, quelle est le moyen recommandé pour l'accès au serveur ?

Même question dans un contexte d'hébergement cloud.

Merci




Philippe Baumard

unread,
Mar 6, 2014, 3:56:12 PM3/6/14
to
 
Je me suis posé la question à début embedded ou REST API.
Une réponse est sans équivoque celle de la rapidité. Une base imbriquée dans le code est très nettement plus rapide à condition d'utiliser les appels API de base. Si on utilise le langage Cypher cela devient beaucoup plus long.

J'ai pris la solution embedded avec les API.

Mais que faire en cas de succés.
Faut il prévoir cette éventiualité dès le début? Pour ma part non. Je préfère voir et agir en conséquence.

Mais si je devais multiplier les serveurs avec une base centralisée accéssible par REST API je pense que je perdrais de plus en plus en performances.
A l'avenir si celà se produit je dupliquerais la base néo4j, ou je la localiserais en fonction de critères géographiques connaissant le langage de mes utilisateurs.

En fait on pense à une base de données. Mais quant on est au pieds du mur on voit qu'il y à deux bases:
- 1 pour les utilisateurs.
- 1 pour le métier.

A la limite le métier peut être centalisé, mais pour des raisons de performances il faut délocaliser dans d'autres bases les utilisateurs.

Donnez votre avis ce serait interessant. Car moi aussi je me pose cette question au cas où...

Jérôme Baton

unread,
Mar 7, 2014, 6:17:06 AM3/7/14
to neo...@googlegroups.com
Je constate aussi qu'après l'apprentissage en ligne, cela se corse puisque aux questions  "comment déployer ?" et "quelle API ?" , c'est plus flou.
Il faut creuser dans le groupe anglophone pour savoir que SpringDataNeo n'est pas production ready fin 2013.

Je pense à Neo dans deux cas, dont un où sans parler de succès, il y a déjà beaucoup d'inscrits donc de charge dès le départ (si cela sort du cadre du POC mais c'est un autre débat).

J'ai mis de côté le mode "Embedded" parce que je n'imagine pas une architecture sans séparer les frontaux web et les bases.
Réflexe d'autres systèmes, certainement.
Mais avec 4M de personnes, je n'y croyais pas.

A moins que qu'il soit possible d'utiliser une base java de type embedded  avec un serveur distant. Pas encore testé cette approche.

Je viens de télécharger la version 'personnal' qui permet le clustering et possède un cache haute performance. 
A voir ...


Dans mon cas, les utilisateurs sont fortement reliés aux données donc conceptuellement, c'est une seule base.
La partie authentification, peut amener à dupliquer les utilisateurs du fait de contrainte technique (ou de l'existant).
Encore que, si je pense à Spring Security, il doit être possible d'utiliser le driver Jdbc de Neo.

Quel que soit votre site, visez le succès.
Si vous n'y croyez pas, changez de projet.
AMHA

Cordialement

JB
Reply all
Reply to author
Forward
0 new messages