IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

[Design] Filtrage de cache


Sujet :

Java EE

  1. #1
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 162
    Points : 75
    Points
    75
    Par défaut [Design] Filtrage de cache
    Bonjour,

    Je rencontre un problème dans la mise en oeuvre du pattern J2EE / EJB (http://knotty.developpez.com/j2ee/ejb/). Mon système de cache contient une quantité importante de données. Certaines requêtes à ma servlet prennent des paramètres, pour un filtrage des données à retourner.

    Mon problème est que ces opérations de filtrage sont à mon avis couteuses et ainsi je pense qu'il serait préférable qu'elles se fassent dans le container EJB pour résister à la charge (qui peut être très importante), non ? Quelle est la meilleure solution à adopter ? Est-t-il possible de modifier le pattern pour que le cache soit dans l'EJB container et si oui comment ? Suis-je clair ? Avez-vous un autre design à proposer ?
    ---
    Erwan

  2. #2
    Membre confirmé
    Avatar de bmoussaud
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 218
    Points : 555
    Points
    555
    Par défaut
    Je te répondrai par une autre question:
    pourquoi as-tu besoin d'un mécanisme de cache ?
    Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo

  3. #3
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 162
    Points : 75
    Points
    75
    Par défaut
    Pour supporter une grosse montée en charge ! Si j'interroge ma base et que je réalise les traitements d'adaptation des données (nombreux et lourds) à chaque requête de l'utilisateur, je pense que mon système va exploser !
    ---
    Erwan

  4. #4
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 162
    Points : 75
    Points
    75
    Par défaut
    Bon, j'ai changé d'avis.

    J'utilise maintenant un pool de SessionBean stateless, et je crée mon cache à la création de mon bean (dans ejbCreate) ((en fait, je remplis une variable d'instance)). J'ai un problème pour la mise à jour du cache, par contre. Les timers que je pensais utiliser ne concernent qu'une seule instance de bean dans le cas des SessionBean stateless et pas toutes les instances. Comment puis-je mettre à jour mon cache pour toutes mes instances de bean dans ce cas, une idée ?
    ---
    Erwan

  5. #5
    Membre régulier
    Inscrit en
    Mars 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 162
    Points : 75
    Points
    75
    Par défaut
    Plus simplement :

    Comment mettre à jour une variable accessible par toutes les instances de bean Session sans état ?
    ---
    Erwan

  6. #6
    Membre confirmé
    Avatar de bmoussaud
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 218
    Points : 555
    Points
    555
    Par défaut
    Citation Envoyé par ebaynaud
    Plus simplement :

    Comment mettre à jour une variable accessible par toutes les instances de bean Session sans état ?
    * une variable de type 'static' si tu es mono serveur
    * un entity bean sur tu es sur un cluster.
    Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo

  7. #7
    Membre confirmé
    Avatar de bmoussaud
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 218
    Points : 555
    Points
    555
    Par défaut
    Citation Envoyé par ebaynaud
    Pour supporter une grosse montée en charge ! Si j'interroge ma base et que je réalise les traitements d'adaptation des données (nombreux et lourds) à chaque requête de l'utilisateur, je pense que mon système va exploser !
    En effet, tu penses. Tu es donc dans une optimisation 'a priori'. C'est souvent dangereux. Je fais régulierement des missions de tuning et de profiling d'applications J2EE. Régulierement les points de blocage d'une application ne sont pas ceux identifiés a priori, pire ce genre d'optimisation peuvent être parfois catastrophique

    Ensuite admettons que ce point fasse exploser ton application (je reprend ta formulation): la solution de cache est-elle la meilleure ? une vue dans la base de données n'est-elle pas une autre solution ?

    Ce lien (en anglais désolé) expose les dangers du 'caching': Improper caching
    http://blog.xebia.com/2007/03/26/eja...roper-caching/
    Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Design de la memoire cache d'une application Web
    Par safir01 dans le forum Architecture
    Réponses: 1
    Dernier message: 17/11/2011, 16h35
  2. Réponses: 5
    Dernier message: 15/04/2008, 14h38
  3. Répertoire caché
    Par KUBITUS dans le forum Delphi
    Réponses: 30
    Dernier message: 13/04/2007, 07h19
  4. [Design] Requete SQL ou Caching XML ?
    Par brousaille dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/04/2006, 16h10
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo