Pour savoir où on va, il faut savoir d'où l'on vient

Vous avez
une question ?
Un projet ?

Contactez nous !
 

Contactez-nous

Vous avez une question ? un projet ? 
Vous souhaitez plus d'informations sur un produit ? sur notre offre ? 
Contactez-nous, on vous répond sous 4H.

eZHumanCAPTCHACode reload
retour

Cache en mode pull

Cache en mode pull

Dans le mode pull, le cache va chercher les objets lorsqu’il en a besoin. Un « consommateur » demande une « ressource » au cache, le cache demande la ressource au « producteur », puis la conserve pour pouvoir la fournir à nouveau sans la redemander, et donc beaucoup plus rapidement.

C’est ce qui est représenté sur les schémas suivants, avec tout d’abord le cas où l’objet n’était pas trouvé dans le cache, et doit être obtenu auprès de son producteur, son serveur :

image122

Et sur la figure suivante, le cas d’un appel suivant, où l’objet est trouvé en cache, et où il n’y a donc aucune sollicitation du serveur :

image124

Durée de vie

Le mode pull est indissociable de la notion de durée de vie, ou de validité, en anglais « time to live » (TTL).

En effet, dans le schéma précédent, la ressource peut être modifiée à tout instant du côté du producteur. Dans le mode pull, le cache n’en est pas averti. En revanche, chaque ressource qui lui a été confiée est caractérisée par une durée de validité, durée pendant laquelle on peut faire l’hypothèse qu’elle n’a pas changé, ou plutôt que si elle a changé, on peut malgré tout utiliser la valeur précédente sans dommage.

Sur certains outils de cache, on configure aussi le « time to idle », le temps maxi écoulé depuis la dernière utilisation de l’objet.
On peut distinguer trois modes de gestion de la durée de vie des objets :

  • Durée de vie illimitée, on changera le nom de l’objet lorsqu’il sera modifié
  • Durée de vie unique : c’est un paramètre du cache, transparent pour le fournisseur
  • Durée de vie différenciée, spécifiée par le fournisseur

Le fonctionnement « MRU »

Le gestionnaire de cache n’a pas toujours une mémoire suffisante pour tout conserver, et il doit alors trouver une stratégie pour garder en mémoire ce qui a le plus de chances d’être demandé à nouveau.

Un dispositif de cache fonctionne le plus souvent selon un principe de MRU, « Most Recently Used », c’est à dire que les contenus les plus récemment utilisés sont conservés en mémoire. Si la mémoire allouée ne suffit plus, alors on laisse tomber les contenus qui n’ont pas été utilisés depuis longtemps, les « Least Recently Used ». Le principe est bien sûr que les contenus les plus souvent utilisés seront toujours statistiquement dans les plus récemment utilisés, et resteront donc presque toujours en cache. Cette gestion MRU permet d’allouer une certaine quantité de mémoire à la gestion du cache, et d’obtenir le meilleur taux de succès, c’est à dire le pourcentage des pages qui peuvent être servies depuis le cache, que l’on appelle « hit ratio ». Bien entendu, plus la mémoire allouée augmente, plus le hit ratio augmente, ceci jusqu’à ce que la mémoire allouée au cache atteigne la somme totale de tous les contenus, et donc un hit ratio de 100%.

Certains dispositifs de cache introduisent une notion de « Most Frequently Used », potentiellement supérieure, mais bien plus difficile à gérer.