Turbolead

Le cache, comment ça marche?

Jeudi 26 Fevrier 2009 à 15:46:57

Nous avons amélioré l'organisation de la mémoire cache. L'administrateur Turbolead peut désormais contrôler finement l'occupation des ressources par le cache. Jusqu'à aujourdhui, seul l'administrateur système pouvait le faire. La fonctionnalité est accessible dans la gestion des utilisateurs "Configuration/Gestion du cache" (le droit superadmin est nécessaire).
Profitons-en pour expliquer ce que représente le cache pour Turbolead.

La mémoire cache est un point fondamental du framework Turbolead Framework. Nos logiciels qui en bénéficient (c'est à dire tous) ont des perfomances d'accès aux données améliorées de 2 ou 3 ordres de grandeurs (par exemple, on a pu constater des temps d'accès de 100 à 300 fois plus rapides sur des sites de ecommerce ayant des milliers de produits imbriqués).

Avec des bases de données fréquement solicitées et avec de nombreuses relations (au sens MERISE) les logiciels ont besoin de faire de nombreuses requêtes pour accèder aux données. Le système de gestion de base de données peut être trés solicité. Par exemple pour charger une liste de produits complexes sur un site de ecommerce, dans certains cas, des milliers de requêtes sont effectuées, alors qu'une seule page internet est visualisé! Bien que le SGBDR soit fait pour cela, le temps d'éxécution devient relativement long.

Nous agissons sur 2 fronts pour améliorer les permances du cache:
* la structuration des données
* les niveaux de caches

La structuration des données consiste, pour l'équipe de développement, à choisir quel type d'information va bénéficier du cache. Par exemple, en restant dans le ecommerce, les tableaux de tarification d'un produit (prix par quantité, promotion) et la fiche produit (référencement, prix unitaire désignation,...) sont, à priori, deux objets différents suceptibles d'étre mis dans le cache. L'équipe de développement peut choisir, grâce au Turbolead Framework, s'il faut mettre en cache, la tarification, le produit ou le couple produit/tarification. Si nous choisissons de mettre en cache le couple produit/tarification lorsque l'internaute examinera le produit, il suffira d'une seule demande pour disposer de la globalité de l'information: donc gain de performances en lecture.

Les niveaux de caches permettent d'accéder à l'information sans soliciter la base de données, puisque l'information est mise dans des mémoires temporaires mais rapides: le cache. Turbolead Framework permet de mettre en place 2 niveaux de cache dont l'utilisation restera transparente pour le développeur (donc facile à mettre en place).
1er niveau: un container de fichiers caches stockés sur la mémoire de masse (ie: le disque dure; donc pas trés rapide, mais tout de même plus que le SGBDR, notamment sur les OS Linux).
2ème niveau: un container cache en mémoire rapide (ie: la RAM, extremement rapide mais très volatile).
Le principe consiste à faire d'abord appel au cache de niveau 2 , si celui ci est indisponible, on appelle le cache de niveau 1, ci ce dernier n'existe pas on se résout à faire une traditionnelle requête SQL.

Remarque: le langage Java utilise des serveurs d'applications J2EE/EJB pour lesquels le cache est déjà géré de manière transparente. Turbolead Framework est entièrement écrit en PHP et n'a pas besoin d'un serveur d'application.

 

Publié par : Frédéric

Les avantages de Turbolead

Basé sur Turbolead Framework
Developpement plus rapide, plus facile

Travail collaboratif et coopératif
Travail organisé, Accès personnalisé

Utilitaires intégrés
Gestion des utilisateurs, localisations, sites internet

Turbolead est soutenu par Oséo