Bonjour,
Aujourd'hui, je dispose d'un serveur Glassfish avec une application web impliquant des EJBs.
Je possède un EJB avec une méthode sensée me renvoyer un résultat en temps réel :
- le client se connecte à la page
- la méthode de l'EJB est appelée
- le résultat est affiché sur la page
Cette méthode prend un paramètre, et va faire une recherche dans la base de données pour y effectuer des comparaisons.
Or aujourd'hui, avec la taille actuelle de la base de données (qui ne fait que progresser), cette méthode prend environ 10 secondes pour s'exécuter laissant ainsi le client et la page en attente.
Mon objectif est d'optimiser ce temps, ainsi j'aimerai donc pouvoir "paralléliser" les calculs.
C'est à dire, on a la méthode de l'EJB principal qui va demander à d'autres machines d'un cluster d'effectuer les comparaisons en spécifiant à chacun l'ensemble des données sur lesquelles appliquer l'algorithme.
Cela se ressemble donc à du MapReduce.
Je me suis tourné alors vers Hadoop, mais étant asynchrone, cela semble ne pas etre adapté.
J'ai jeté un coup d'oeil à Storm, qui lui, est synchrone, mais de meme, ne semble ne pas etre adapté à mon soucis.
Quelqu'un connaîtrait-il un moyen simple et efficace pour arriver à mes fins?
Partager