Caching
Ein Cache hält bereits berechnete oder gelesene Ergebnisse für schnellere Folgezugriffe. Seine Aktualitätsregel muss zur fachlichen Bedeutung der Daten passen.
- LaufzeitWie lange ein Wert alt sein darf.
- Folge der VeraltungNicht jeder alte Wert schadet gleich.
- Regel je DatenartJede Datenart bekommt eigene Dauer und Reaktion.
Einordnung
Warum das wichtig ist
Ein Cache beschleunigt Zugriffe, zeigt aber womöglich Veraltetes. Beim Preis oder Bestand hat das andere Folgen als bei einer Beschreibung. Dauerhafte Speicher und ihre Modelle sind ein eigener Baustein.
Dieser Baustein erklärt gespeicherte Zugriffsergebnisse und Invalidierung. Für dauerhafte Quellen und Speichermodelle siehe SQL & NoSQL.
Auf einen Blick · Cache-Aside
Cache-Laufzeit und Veraltung auf der Produktseite
Der Katalog zeigt Produkttexte, Preise und verfügbare Mengen. Diese Werte ändern sich unterschiedlich oft und haben unterschiedliche Folgen bei Veraltung.
So liest du das Bild
- Laufzeit Du verlängerst die Laufzeit; die Werte werden bis zu so alt.
- Folge der Veraltung Ein alter Text bleibt grün, Preis und Bestand färben sich früher gelb und rot.
- Regel je Datenart Mit Schalter sind alle drei Werte grün: Text 30 min, Preis invalidiert, Bestand kurz.
Nutzen & Grenzen
Hilft, wenn
- Wiederholte Lesezugriffe auf dieselben Werte profitieren von kürzeren Antwortzeiten und geringerer Quellenlast durch einen Cache.
- Ein definiertes Gültigkeitsfenster macht die Aktualität abgeleiteter Daten gezielt steuerbar.
- Zwischengespeicherte Ergebnisse teurer Berechnungen geben Rechenkapazität für andere Arbeit frei.
Grenzen
- Ein Cache kann veralteten Stand zeigen; bei verbindlichen Entscheidungen wie Preis oder Bestand muss die Quelle gefragt werden. Siehe Konsistenzmodelle.
- Beim Kaltstart ist der Cache leer: Viele gleichzeitige Fehltreffer treffen die Quelle (Cache Stampede).
- Schwierig ist nicht das Speichern, sondern die Invalidierung: den Moment zu erkennen, an dem ein Wert nicht mehr gelten darf.
In der Praxis
- Cache-Schlüssel und Aktualität festlegen. Bestimme Gültigkeitsdauer und Invalidierungsweg für jeden abgeleiteten Wert. Verwende einen Treffer nur innerhalb der Aktualitätszusage des jeweiligen Zugriffs; strengere Anforderungen benötigen einen passenden Abgleich mit der Quelle.
- Teste Ablauf, Cache-Miss und vollständigen Cache-Ausfall unter paralleler Last. Begrenze Nachfragen an die Quelle, damit ein Kaltstart keine Überlast erzeugt.
- Trefferquote und Datenalter gemeinsam beobachten. Erfasse zusätzlich Fehler und Last auf der Quelle. Der Baustein Konsistenzmodelle erläutert Sichtbarkeitszusagen; Performance erklärt die Messung des Geschwindigkeitsgewinns.
Ausführliche Erklärung lesen
Ein Cache hält abgeleitete Werte für begrenzte Zeit oder bis zu einer gezielten Invalidierung nahe am Zugriff. Cache-aside lädt fehlende Einträge aus einer Quelle nach. Der Cache liefert eine Kopie; den verbindlichen Datenstand hält allein die Quelle, und die Kopie darf nur so alt sein, wie es die für den Zugriff zugesicherte Aktualität erlaubt.
Ablaufzeit und Invalidierung bestimmen Aktualität und Last. Ein Cache-Ausfall kann viele gleichzeitige Nachfragen zur Quelle lenken. Trefferquote, Alter der Werte und Rückfallverhalten zeigen, ob das Zwischenspeichern den gewünschten Nutzen erzielt.
Konsistenzmodelle benennen die erlaubte Sichtbarkeit; ein Cache ergänzt dazu Ablauf- und Invalidierungsregeln. Performance prüft, ob die Zwischenspeicherung den Engpass tatsächlich senkt.
TTL (Time to Live) legt fest, wie lange ein Eintrag gültig bleibt.
Eine Cache Stampede entsteht, wenn viele gleichzeitige Fehltreffer die Quelle überlasten; Abhilfe ist etwa, je Schlüssel nur eine Nachladung zuzulassen. Dass Cache-Invalidierung zu den zwei schweren Problemen der Informatik zähle, wird Phil Karlton zugeschrieben.
Selbst prüfen
Teste dich in drei Stufen
AblesenIm Bild nachsehen
Bei welcher Laufzeit wird der Preis ohne Regel rot, und wie sieht er mit eingeschalteter Regel aus?
Lösung mit Begründung ansehen
Ab 30 min wird der Preis rot (bis 30 min alt). Mit Regel wird er bei Änderung invalidiert und bleibt grün.
AnwendenAuf eine neue Lage übertragen
Der Katalog ändert den Preis der Tasse. Was muss mit dem Cache der Produktseite geschehen?
Lösung mit Begründung ansehen
Der gecachte Preis wird invalidiert. Der Preis kommt aus dem Katalog, und vor dem Checkout wird er ohnehin neu gelesen.
BewertenEine Alternative abwägen
Soll der Bestand genauso lange gecacht werden wie die Beschreibung? Wie wägst du ab?
Lösung mit Begründung ansehen
Längere Dauer spart Zugriffe. Ein veralteter Bestand kann aber zu falschen Zusagen führen, anders als ein älterer Text. Deshalb nur kurz anzeigen und bei Reservierung verbindlich prüfen.
Vertiefen
Diese Bausteine führen die Gedanken dieser Seite weiter.
Quellen
- Microsoft · Cache-Aside (öffnet in neuem Tab)Erklärt Cachebefüllung, Invalidierung und mögliche veraltete Daten.
- Redis · Client-side Caching (öffnet in neuem Tab)Erklärt Cacheinvalidierung und Konsistenz bei lokalen Caches.
- IETF · HTTP Semantics (RFC 9110) (öffnet in neuem Tab)Normiert HTTP-Methoden, sichere und idempotente Operationen sowie Statuscodes.