Was bedeutet das Konzept für kalten und warmen Cache?

10

Ich habe eine Zeitung gelesen und sie verwendete die Begriffe "kalter Cache" und "warmer Cache". Was bedeutet das Konzept für kalten und warmen Cache? Ich besuche das, aber ich brauche etwas mehr.

Amir
quelle
1
Was würden Sie als nützlich erachten? Wie wollen Sie die Informationen nutzen? Ich frage nur, weil Sie wissen: google.com/search?q=wikipedia+cold+cache
mikeserv
Ich möchte dieses Konzept in meinem Artikel verwenden, damit ich mehr Details dazu benötige.
Amir
Es wird lediglich die Temperatur als Metapher verwendet, um zu verstehen, wie nützlich ein bestimmter Cache ist, da "Nützlichkeit" in einem Kontinuum vorhanden ist. Wärmeren Caches weisen eine hohe Trefferquote auf, während kalte Caches mit Daten gefüllt sind, nach denen Sie wahrscheinlich in Kürze nicht mehr fragen werden, und daher nur Speicherplatz beanspruchen.
Bratchley
@JoelDavis - Wenn Caches keine Fehler behandeln müssten, wäre das oben Gesagte wahr, und die einzige Methode zum Ersetzen zwischengespeicherter Daten, die jemals entwickelt werden müsste, wäre LFU. Da Daten jedoch aus verschiedenen Gründen fehleranfällig sind, wird sie behandelt Ein kalter Cache ist etwas komplizierter als nur das Ersetzen der am wenigsten verwendeten Daten.
Mikeserv

Antworten:

13

Kurz gesagt: Ein warmer Cache ist nützlich, ein kalter nicht. In der Tat kann die Verwendung eines kalten Caches gefährlich sein.

Sie sehen, der springende Punkt eines Caches ist es, auf Daten zuzugreifen, auf die häufig zugegriffen wird. In einem DNS-Cache werden beispielsweise die Ergebnisse der kürzlich von Ihnen angeforderten Namensauflösungen lokal gespeichert. Wenn dieselben Auflösungen erneut angefordert werden, sind ihre Ergebnisse bereits verfügbar und werden sofort bereitgestellt, ohne eine größere, wahrscheinlich externe Namensdatenbank abzufragen . Mit anderen Worten, Ihr Computer muss den Domain Name Server Ihres Internetdienstanbieters nicht nach der IP-Adresse von google.com fragen, da Ihr Computer dies bereits weiß - Ihr DNS- Cache ist warm.

Wenn Sie jedoch niemals die IP-Adresse von Google anfordern, befindet sich diese nicht in Ihrem Cache. Ein kalter Cache ist entweder zu veraltet, um nützlich zu sein - da die darin enthaltenen Daten wahrscheinlich zu alt sind , um genau zu sein - oder er ist vollständig leer und leer ist reichlich kalt.

Aber oft ist leer besser als alt - obwohl dies natürlich stark von den Daten abhängt, die zwischengespeichert werden. Das Leere ist einfach zu handhaben, da es nur gefüllt werden muss - das ist ein Kinderspiel -, aber alte Caches erfordern eine Fehlerkorrektur. Dies ist das primäre logistische Problem bei der Entwicklung und Wartung von Cache-Systemen. Wie können Sie feststellen, dass die von Ihnen zwischengespeicherten Daten auf dem neuesten Stand sind und was getan wird, wenn dies nicht der Fall ist?

Ich werde keine dieser Fragen beantworten - sie sind beide implementierungsabhängig und wahrscheinlich sowieso weit über meine Fähigkeiten hinaus -, aber es sollte klar sein, dass alle Caching-Systeme mit einem gewissen Risiko von Ungenauigkeiten verbunden sind. Es gehört zum Territorium. Das Risiko ist möglicherweise nicht groß - oft besteht nur das Risiko einiger zusätzlicher Nanosekunden in der Verarbeitungszeit. Das Cache-System prüft die angeforderten Daten anhand der vom Cache-Designer implementierten ausfallsicheren Daten. Wenn dies nicht gewünscht wird, fragt das Cache-System beispielsweise das DNS des Internetdienstanbieters nach der IP-Adresse von Google ab, und alles ist in Ordnung.

Je wärmer der Cache, desto geringer ist das Risiko. Die Vorteile des Warm-Cache , liebe Daten in der Nähe zu halten, überwiegen die Risiken der Nachteile des Kalt-Cache oder ... wahrscheinlich sollten Sie nicht zwischenspeichern.

mikeserv
quelle
7
Wie das berühmte Zitat sagt: "In der Informatik gibt es zwei schwierige Probleme: Benennen von Dingen, Cache-Ungültigmachung und Fehler nacheinander." Zu wissen, dass Ihre zwischengespeicherten Werte alt sind, ist genau das, was Cache-Ungültigmachung bedeutet :)
Riking
Bei Ihrem Kommentar zur Cache-Ungenauigkeit ist dies nicht unbedingt der Fall. Wenn das System / die Anwendung exklusiven Zugriff auf die Datenquelle hat, können die Cache-Einträge entsprechend aktualisiert oder entfernt werden. Nur wenn Sie mit Quellen arbeiten, auf die gleichzeitig zugegriffen wird (z. B. DNS, NFS oder CIFS), tritt dieses Problem auf (selbst wenn nur eine über Schreibzugriff verfügt, z. B. mit DNS).
Bratchley
"sonst warum zwischenspeichern Sie überhaupt?" Der gleiche Grund, den Sie für das Zwischenspeichern von etwas anderem hätten: Schutz vor hoher Latenz. Zum Beispiel ist der Dateisystem-Cache nur so, dass das Betriebssystem nicht für allgemeine Anforderungen auf die Festplatte gehen muss. Der Cache befindet sich jedoch immer noch in einem kohärenten Zustand, da Änderungen an lokalen Dateisystemen sowieso über den Kernel erfolgen müssten. Der ECC-Teil ist nicht wirklich relevant, da diese Art von Beschädigung nicht auf Caching zurückzuführen ist, sondern auf einen Hardwarefehler, der alle Systeme gleichermaßen treffen würde, unabhängig davon, wie sie entworfen wurden.
Bratchley
Die Festplatte ist ein RAM-Cache?
Bratchley
Ich denke, Sie haben die Beziehung umgekehrt. Der Inhalt, auf den kürzlich zugegriffen wurde, wird im RAM zwischengespeichert, sodass der Speicher ein Cache für die Festplatte ist (oder zumindest als Teil des Caching-Systems verwendet wird). Der Festplattenzugriff ist der langsame Vorgang, mit dem das Speichern von Inhalten im Speicher umgangen werden soll.
Bratchley
6

Im Allgemeinen ist ein kalter Cache (noch) nicht gut gefüllt. Wenn Ihr Cache also kalt ist, müssen Informationen mit der vermutlich langsameren Methode abgerufen werden. Dies ist normalerweise kurz nach dem Start einer Anwendung der Fall oder wenn sich die Abfragetypen erheblich ändern.

Umgekehrt ist ein warmer Cache gut mit Informationen gefüllt, die Sie kürzlich oder häufig abgerufen haben.

In Bezug auf ext-Dateisysteme und Verzeichnisstrukturen gibt es hier einige Informationen darüber, wie das Caching im virtuellen Dateisystem (VFS) unter Linux im Allgemeinen funktioniert: http://www.tldp.org/LDP/tlk/fs/filesystem.html

cpugeniusmv
quelle
"vor kurzem oder häufig"? Vor kurzem ja. aber häufig?
Faheem Mitha
1
@FaheemMitha Es ist wahr - LFU ist definitiv ein sehr verbreitetes Akronym, dem Sie in dieser Abteilung begegnen werden. Wenn Ihr Cache mit hinreichender Sicherheit nur aktuelle Informationen enthält und voll ist, müssen Sie über andere Methoden verfügen, um festzustellen, welche Informationen beim Einlesen neuer Daten ersetzt werden. LFU ist wahrscheinlich der Weg, den Sie gehen werden.
Mikeserv
@cpugeniusmv Danke für den Link. Das könnte vernünftigerweise in Ihrer Antwort enthalten sein.
Faheem Mitha