Caching-Strategien

Autor/Redakteur: Christoph Engelbert, Manager Developer Relations bei Hazelcast/gg

In der IT ist ein Cache eine Komponente zur Speicherung von Daten, die ansonsten zeitintensiv berechnet, verarbeitet oder von einem darunterliegenden Back-End-System abgerufen werden müssten. Caching stellt die damit verbundene Funktionalität dar, die verhindert, dass häufig verwendete Daten zusätzliche Roundtrips antreten müssen. In den oben genannten Fällen lässt sich Caching zur Leistungssteigerung oder zur Minderung der Latenzzeiten von Anwendungen nutzen.

Typische Szenarien sind In-Memory Caches für Datenbanken, plattenbasierte Daten, Daten hinter langsamen Netzwerkverbindungen oder Ergebnisse aus vorherigen Berechnungen. Caching kommt als Lösung oft dann ins Spiel, wenn die Antwortzeiten der Webserver, Datenbanken oder sonstiger Back-End-Ressourcen exponentiell ansteigen. Die erste Optimierungsmaßnahme besteht oft darin, schnell einen Cache in die Anwendungslandschaft zu integrieren. Auf die Ausarbeitung einer Caching-Strategie im Vorfeld wird meist verzichtet.

Dieser Ansatz ist insofern problematisch, als dass hier ein zentrales System entsteht, das zum einen ein Single Point of Failure und zum anderen ein limitierender Faktor ist. Das trifft beispielsweise zu, wenn alle Daten in einer relationalen Datenbank gespeichert würden. Jeder Seitenabruf initiiert nicht nur eine einzige Abfrage der Datenbank, sondern möglicherweise mehrere Abfragen und mitunter auch komplexe Verknüpfungen.

Zu Spitzenzeiten leiden die Benutzer dann unter langen Ladezeiten sowie hohen Latenzen, je nachdem, wie viele Roundtrips die Daten zwischen ihrem Standort und dem Rechenzentrum zurücklegen müssen. Mit Caching First haben wir einen Begriff geschaffen, der verdeutlicht, dass das Caching selbst eines der wichtigsten Bestandteile einer Applikation ist – ebenso wie Datenbanken, Anwendungsserver, Hardwarespezifikationen oder Benutzererlebnis.