Caching-Strategien und Cache-Invalidierung
Kurz: Ein Cache hält häufig gebrauchte Daten in schnellem Speicher. Schwierig ist, ihn aktuell zu halten: Es gibt Strategien wie Cache-Aside, Write-Through und Write-Back, und Daten müssen ungültig gemacht werden.
Genauer: Caches beschleunigen Zugriffe und entlasten Datenbanken, kosten aber Speicher und erzeugen die Gefahr veralteter Daten. Eine bekannte Aussage lautet, Cache-Invalidierung sei eines der schwersten Probleme der Informatik.
Im Detail
- Cache-Aside: Anwendung prüft Cache, lädt bei Fehlen aus der Datenbank und füllt den Cache.
- Write-Through: Schreiben geht in Cache und Datenbank. Konsistent, langsamer.
- Write-Back: Erst in den Cache, später in die Datenbank. Schnell, Risiko bei Ausfall.
- Invalidierung: TTL (Ablaufzeit), explizites Löschen beim Schreiben, Versionsschlüssel.
- Verdrängung: LRU (am längsten ungenutzt), LFU (am seltensten genutzt).
- Cache Stampede: Viele Anfragen laden gleichzeitig nach, wenn ein Eintrag abläuft. Gegenmittel: Sperre, vorzeitiges Auffrischen.
- Trefferquote (Hit Rate): Wichtigste Kennzahl.
Siehe auch: Speicherhierarchie und Cache-Lines, Bloom-Filter und probabilistische Datenstrukturen