MusterKapitel II · Daten · Baustein 7 von 9

Caching

Ein Cache hält bereits berechnete oder gelesene Ergebnisse für schnellere Folgezugriffe. Seine Aktualitätsregel muss zur fachlichen Bedeutung der Daten passen.

  1. LaufzeitWie lange ein Wert alt sein darf.
  2. Folge der VeraltungNicht jeder alte Wert schadet gleich.
  3. 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

Die Anwendung fragt zuerst den Cache; nur bei einem Fehlschlag liest sie die Datenbank und legt das Ergebnis im Cache ab.
Shop-Beispiel · Stufen durchspielen

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

  1. Laufzeit Du verlängerst die Laufzeit; die Werte werden bis zu so alt.
  2. Folge der Veraltung Ein alter Text bleibt grün, Preis und Bestand färben sich früher gelb und rot.
  3. Regel je Datenart Mit Schalter sind alle drei Werte grün: Text 30 min, Preis invalidiert, Bestand kurz.
  • bis 1 min altBeschreibung
  • bis 1 min altVerkaufspreis
  • bis 1 min altBestand

Preis und Bestand sind bis zu 1 min alt. Für den Bestand ist das schon riskant.

Werte illustrativ

Verlängere die Laufzeit und beobachte, welche Datenart zuerst zum Risiko wird. Schalte dann die Regeln je Datenart ein.

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

  1. 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.
  2. Teste Ablauf, Cache-Miss und vollständigen Cache-Ausfall unter paralleler Last. Begrenze Nachfragen an die Quelle, damit ein Kaltstart keine Überlast erzeugt.
  3. 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

  1. 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.

  2. 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.

  3. 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.

Weiter im Lernpfad

Als Nächstes in Daten & Zustand: Polyglot Persistence.