que signifie le concept de cache froid et de cache chaud?

10

J'ai lu un article et il a utilisé les termes «cache froid» et «cache chaud». Que signifie le concept de cache froid et de cache chaud? Je visite cela mais j'ai besoin de quelque chose de plus.

Amir
la source
1
Que considéreriez-vous comme utile? Comment comptez-vous utiliser ces informations? Je demande seulement parce que, vous savez: google.com/search?q=wikipedia+cold+cache
mikeserv
Je veux utiliser ce concept dans mon article, j'ai donc besoin de plus de détails à leur sujet.
Amir
Il s'agit simplement d'utiliser la température comme métaphore pour comprendre l'utilité d'un cache particulier car «l'utilité» existe sur un continuum. Les caches plus chaudes ont des taux de succès élevés tandis que les caches froides sont remplies de données que vous n'allez probablement pas demander de nouveau de si tôt et donc elles prennent juste de la place.
Bratchley
@JoelDavis - Si les caches n'avaient pas besoin de gérer les erreurs, alors ce qui précède serait vrai, et la seule méthode pour remplacer les données mises en cache qui auraient jamais eu besoin d'être développées serait LFU, mais parce que les données sont sujettes à l'erreur pour diverses raisons, la gestion un cache froid est un peu plus compliqué que le simple remplacement des données les moins utilisées.
mikeserv

Réponses:

13

Eh bien, en bref: un cache chaud est utile alors qu'un cache froid ne l'est pas. En fait, un cache froid peut être dangereux à utiliser.

Vous voyez, l'intérêt d'un cache est de garder les données souvent accessibles accessibles. Par exemple, un cache DNS stockera localement les résultats des résolutions de noms que vous avez récemment demandées et, lorsque ces mêmes résolutions sont à nouveau demandées, leurs résultats sont déjà disponibles et servis immédiatement sans interroger une base de données de noms hors site plus importante, probablement . En d'autres termes, votre ordinateur n'a pas à demander au serveur de nom de domaine de votre fournisseur de services Internet l'adresse IP de google.com car votre ordinateur le sait déjà - votre cache DNS est chaud.

Mais si vous ne demandez jamais l'ip de Google, il ne sera pas dans votre cache. Un cache de froid est trop rassis pour être utile - comme dans les données qu'il contient est probablement trop vieux pour être précis - ou il est entièrement vide, et vide de plein froid.

Mais souvent, le vide est meilleur que l'ancien - bien que cela dépende, bien sûr, des données qui sont mises en cache. Les vides sont faciles à manipuler car ils ont juste besoin d'être remplis - c'est une évidence - mais les anciens caches nécessitent une correction d'erreurs. Il s'agit du principal problème logistique de développement et de maintenance des systèmes de cache - comment savoir si les données que vous avez mises en cache sont à jour et que faire si ce n'est pas le cas?

Je ne répondrai à aucune de ces questions - elles dépendent toutes deux de l'implémentation et dépassent de loin mes capacités, de toute façon - mais il faut comprendre que tous les systèmes de mise en cache comportent un risque inhérent d' inexactitude. Cela va avec le territoire. Le risque peut ne pas être grand - il ne s'agit souvent que d'un risque de quelques nanosecondes supplémentaires dans le temps de traitement. Le système de cache vérifiera les données demandées par rapport à la sécurité intégrée mise en œuvre par le concepteur de cache et, si cela s'avère insuffisant, le système de cache, par exemple, interrogera le DNS du FAI pour l'ip de Google et tout va bien.

Le plus chaud le cache, cependant, le moins il est risqué. Les avantages du cache chaud de garder des données chères à proximité dépassent les risques des inconvénients du cache froid ou ... vous ne devriez probablement pas mettre en cache.

mikeserv
la source
7
Comme le dit la célèbre citation: "Il y a deux problèmes difficiles en informatique: nommer les choses, invalider le cache et les erreurs hors-série." Savoir que vos valeurs mises en cache sont anciennes est exactement ce que signifie l'invalidation du cache :)
Riking
Sur votre commentaire sur l'inexactitude du cache, ce n'est pas nécessairement vrai. Si le système / l'application a un accès exclusif à la source de données, les entrées de cache peuvent être mises à jour ou supprimées selon le cas. Ce n'est que si vous avez affaire à des sources accédées simultanément (par exemple DNS, NFS ou CIFS) que vous rencontrez ce problème (même si une seule a un accès en écriture, comme avec DNS).
Bratchley
"sinon pourquoi mettez-vous en cache du tout" Même raison que vous auriez pour mettre en cache autre chose: protection contre une latence élevée. Par exemple, le cache du système de fichiers est juste pour que le système d'exploitation n'ait pas à sortir sur le disque pour les requêtes courantes. Le cache est toujours dans un état cohérent, car les modifications des systèmes de fichiers locaux devraient de toute façon passer par le noyau. La partie ECC n'est pas vraiment pertinente car ce type de corruption n'est pas dû à la mise en cache, mais à une erreur matérielle qui toucherait tous les systèmes de manière égale, quelle que soit leur conception.
Bratchley
Le disque est un cache de RAM?
Bratchley
Je pense que vous avez inversé la relation. Le contenu du disque récemment consulté est mis en cache dans la RAM, la mémoire est donc un cache pour le disque (ou est au moins utilisée dans le cadre du système de mise en cache). L'accès au disque est une opération lente qui permet de stocker des éléments en mémoire.
Bratchley
6

En général, un cache froid est un cache qui n'est pas encore bien rempli. Donc, si votre cache est froid, les informations doivent être récupérées à l'aide de la méthode, vraisemblablement, plus lente. C'est généralement le cas peu de temps après le démarrage d'une application ou les types de requêtes changent considérablement.

Inversement, un cache chaleureux est bien rempli d'informations que vous avez récemment ou fréquemment récupérées.

En ce qui concerne les systèmes de fichiers ext et les structures de répertoires, il existe quelques informations sur le fonctionnement général de la mise en cache dans le système de fichiers virtuel (VFS) sous Linux: http://www.tldp.org/LDP/tlk/fs/filesystem.html

cpugeniusmv
la source
"récemment ou fréquemment"? Récemment, oui. mais souvent?
Faheem Mitha
1
@FaheemMitha C'est vrai - LFU est certainement un acronyme très courant que vous rencontrerez dans ce département. Si votre cache est raisonnablement certain de ne contenir que des informations récentes et qu'il est plein, alors vous devez avoir d'autres moyens de déterminer quelles informations sont remplacées lorsque vous lisez de nouvelles données. LFU est probablement la voie à suivre.
mikeserv
@cpugeniusmv Merci pour le lien. Cela pourrait raisonnablement être inclus dans votre réponse.
Faheem Mitha