Cache: beschleunigen, ohne veraltete Daten auszuliefern
Wo man ihn platziert
Im Browser, im Verteilnetz, im App-Server und in einem gemeinsamen Schlüssel-Wert-Speicher. Jede Schicht ist schneller und schwerer zu invalidieren. Der meiste Schmerz kommt von Schichten, die ohne eine einzige entscheidende Richtlinie gestapelt sind.
Drei Strategien
Zeitablauf. Einfach und für die meisten Fälle genug. Wählen Sie eine kurze Zeit für sich ändernde Daten und eine logische für stabile.
Ereignisinvalidierung. Beim Schreiben den Schlüssel löschen. Genauer, und erfordert, jede schreibende Stelle zu bedenken.
Hintergrundauffrischung. Eine bestehende Kopie ausliefern und parallel auffrischen — ein reibungsloses Erlebnis, im Tausch gegen einen leicht veralteten Wert.
Fallstricke
Ein Cache-Schlüssel, der die Identität oder Berechtigungen des Nutzers nicht enthält — so werden Daten des einen dem anderen ausgeliefert. Massenablauf im selben Moment, der die Datenbank zu Fall bringt. Und ein Cache, der eine langsame Abfrage überdeckt, statt sie zu beheben.
Im Detail
Messen Sie die Cache-Trefferrate und auch die Antwortzeit ohne ihn. Ein Cache, der ein Problem verbirgt, statt es zu lösen, explodiert im schlimmsten Moment — wenn er sich leert und das System der vollen Last ausgesetzt ist, gegen die es nie getestet wurde.