Ich habe mit zufälligen Cache-Ablaufzeiten experimentiert, um Situationen zu vermeiden, in denen eine einzelne Anforderung mehrere Dinge gleichzeitig zur Aktualisierung zwingt. Beispielsweise kann eine Webseite fünf verschiedene Komponenten enthalten. Wenn jeweils eine Zeitüberschreitung von 30 Minuten eingestellt ist, hat der Benutzer alle 30 Minuten eine lange Wartezeit. Stattdessen stellen Sie alle auf eine zufällige Zeit zwischen 15 und 45 Minuten ein, damit höchstens eine Komponente für einen bestimmten Seitenladevorgang neu geladen wird.
Ich versuche, Forschungsergebnisse oder Richtlinien zu diesem Thema zu finden, z. B. optimale Varianzparameter. Ich erinnere mich, dass ich einen Artikel darüber gesehen habe, wie Google (?) Diese Technik verwendet, sie aber nicht finden kann, und es scheint nicht viel über das Thema geschrieben zu sein.
quelle
Antworten:
Einige Dokumente:
quelle
Um auf meine eigene Frage zurückzukommen, besteht das Hauptproblem darin, zu vermeiden, dass immer alles gleichzeitig abläuft. Wenn dies zulässig ist, wird das System langsamer und überlastet, während der Cache erneut gefüllt wird.
Meistens ist dies in der Praxis wirklich kein Problem. Im Laufe der Zeit tendieren alle Komponenten dazu, in Bezug auf die Zeit, die sie ablaufen, zu driften. Wenn mehrere Komponenten gleichzeitig neu erstellt werden, ist dies ein Codegeruch, da sie wahrscheinlich als einzelne Komponente zwischengespeichert werden sollten (z. B. wenn Sie die eindeutige Kopf-, Text- und Fußzeile einer Seite separat zwischengespeichert haben, können Sie dies möglicherweise Cache einfach die Seite selbst).
Es gibt sicherlich Zeiten, in denen viele Dinge gleichzeitig zwischengespeichert werden müssen, z. B. nach dem Starten eines Systems, wenn wir den gesamten Cache geleert oder die Cache-Schlüssel gedreht haben. In diesem Fall ist es normalerweise nicht so schlimm, weil sich die Komponenten schnell füllen und die Verfallszeiten anschließend auseinander driften.
In dem Maße, in dem dies ein Problem ist, gibt es mehrere Lösungen:
quelle