Traduction de la documentation officielle.
(Mehdi KASMI - Architecte technique - mehdi.kasmi@unilog.fr)
Les algorithmes de caching suivants sont disponibles pour les mémoires cache locales :
Least Recently Used (LRU) traduction littérale en français: Le moins Récemment Utilisé
C'est l'algorithme le plus commun et direct de caching. Il y a une certaine quantité fixée d'objets qui peuvent être mis en cache et c'est configurable. Quand la mise en cache d'un nouvel objet est demandée et que la mémoire cache est pleine, l'objet qui a le moins récemment été interrogé de la mémoire cache (ou mis à jour dans la mémoire cache) est éjecté pour faire de l'espace.
Automatique
Cet algorithme tourne avec le Garbage collector pour permettre aux objets mis en cache d'être automatiquement détruits. La mémoire cache maintient des références aux objets mis en cache. Ceux-ci permettent aux objets mis en cache d'être détruits par le système si nécessaire. Cela permet de gérer une taille de mémoire cache qui est limitée à la quantité de mémoire disponible par la JVM. Cependant, à la différence de l'algorithme LRU, il ne garantit pas nécessairement que les objets fréquemment utilisés seront disponibles dans la mémoire cache.
Timeout
Algorithme permettant de libérer des objets qui n'ont pas été utilisés(en mode écriture) pendant un certain nombre de millisecondes. La propriété cache.timeout doit être renseignée pour modifier le temps de vie des objets.
Lalgorithme hybride
Cet algorithme combine les avantages du LRU et de l'algorithme Automatique. On fournit deux niveaux de mise en cache. Au premier niveau, une mémoire cache de type LRU assure que les objets les plus récemment utilisés sont disponibles dans la mémoire cache. Au deuxième niveau, une mémoire cache Automatique récupère les objets mis en caches qui sont disponibles pour les traiter dans le Garbage collector.
Lequel devrais-je utiliser ?
L'algorithme Hybride offre la meilleure combinaison performance pour des objets fréquemment utilisés et maîtrise de la taille mémoire. C'est l'algorithme recommandé. Pour les développeurs qui veulent la mise en cache simple, déterminée, l'algorithme LRU peut être préférable.
Voici toutes les options de configuration disponibles via la classe "CacheConfiguration" :
CacheType
Cest ce qui correspond aux types des mémoires cache sous-jacentes qui seront utilisées.
Les options sont :
CacheConfiguration. TYPE_LRU, CacheConfiguration.TYPE_AUTO, CacheConfiguration.TYPE_TIMER et CacheConfiguration.TYPE_HYBRID.
Le paramètre par défaut est LRU.
LRUCacheSize
Cest la taille de mémoire cache de LRU. Cela se mesure en nombre d'objets et pas en octets.
Cette valeur est ignorée si CacheType est mis à CacheConfiguration. AUTO ou CacheConfiguration. MINUTEUR. La valeur par défaut est 10000.
MulticastIP
Cest l'adresse IP multipoint qui sera utilisée pour communiquer entre les Gestionnaires de mémoire cache.
La valeur par défaut est 231.12.21.132.
ChannelProperties
Si vous êtes familiers avec la technologie JavaGroups, vous devez savoir que c'est la valeur définissant le canal du JavaGroups.
Notez que si vous renseignez cette valeur, la Variable MulticastIP sera ignorée.
Vous trouverez plus de renseignements dans la Javadoc pour connaître les valeurs par défaut.
Maintenant que vous avez ce fabuleux moteur de cache intégré à votre application Web, comment lutiliserez-vous ? Voici quelques astuces :
Dans la majorité des énormes applications Web, au moins 90 % de toutes les requêtes qui parviennent au moteur de persistance permettent de récupérer le même petit ensemble de données. Donc ce sont les données que vous voulez fournir que vous avez mis en Cache. Ne vous inquiétez pas tellement des autres 10%.
Ne mettez pas en cache d'objets imbriqués!
Supposons que nous avons une méthode getAllPeople, qui récupère toutes les Personnes présentes dans la base de données. Devrions-nous mettre en cache le résultat de cette interrogation ? C'est souvent une idée imprudente de faire ainsi. Le problème est qu'un des objets Personne pourrait être mis à jour et que getAllPeople nest pas expiré à ce moment. Bien sûr, vous pourriez ajouter du code supplémentaire pour insérer, mettre à jour et supprimer l'objet imbriqué dans la mémoire cache, mais cela deviendra rapidement malpropre.
Ayez le moyen de d'effacer toutes les données contenues dans le cache.
Si vous ne faites pas souvent de changements dans la de base de données, il est très pratique d'avoir un écran d'administrateur accessible via le Web qui permet d'effacer manuellement les caches
Aucun commentaire pour cet article
| Mai 2008 | ||||||||||
| L | M | M | J | V | S | D | ||||
| 1 | 2 | 3 | 4 | |||||||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||||
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | ||||
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | ||||
| 26 | 27 | 28 | 29 | 30 | 31 | |||||
|
||||||||||
Commentaires