Hilfe-Center

File-Cache (Image-Cache)

Diese Seite beschreibt, wie der Image-Cache funktioniert und welche Prinzipien dahinter stehen, mit entsprechendem Hintergrund dazu, warum diese Funktionweise und Implementierung gewählt wurde.

Allgemeines

Der Image-Cache ist nur aktiv, wenn in den allgemeinen Einstellungen der Haken bei "Caching von Dateien" gesetzt ist. Er hält häufig aufgerufene Bilddateien im Arbeitsspeicher, wodurch diese schneller ausgeliefert werden können. Dabei ist es egal, ob das Bild direkt oder als Ausschnitt (Assignment) aufgerufen wird. Zusätzlich kann die Gesamtgröße des zur Verfügung stehenden Speichers in MB, die erlaubte Größe einer Datei in KB, eine Trägheit des Caches in Stunden und ein Cache-Reorganisationsintervall in Sekunden angegeben werden.

Funktionsweise

Wird eine Bilddatei aufgerufen, läuft diese intern über den Stream-Controller (eine interne Klasse, die sich um das Ausliefern der Bilder kümmert). Nach der allgemeinen Verarbeitung wird bei aktiver Einstellung versucht, das Bild aus dem Cache zu laden (als Schlüssel dient hierbei die URL mit Get-Parametern). Nun wird das Element aus dem Cache geladen und das Änderungsdatum mit dem der Quelldatei verglichen. Sind diese nicht gleich, muss das Bild neu gecached werden. Danach wird entschieden, ob das angeforderte Bild neu erstellt (gerendert) werden muss oder nicht. Ist diese Variante bereits im Arbeitsspeicher vorhanden, wird diese als Byte-Stream geliefert und im Cache vermerkt, dass dieses Element ein weiteres mal verwendet wurde und wann.

Überschreitet das Bild das Größenlimit einer Datei wird es nicht in den Cache aufgenommen. Zusätzlich wird nun geprüft, ob mit dem Bild die Gesamtgröße des Cachespeichers überschritten wird. Auch Bildaufrufe, die die Cache-Göße überschreiten, werden zur weiteren Bewertung (der Aufrufhäufigkeit) in der Cache-Liste verwaltet (ohne Byte-Stream).

Damit der Cache optimal ausgenutzt wird, werden nur Bilder darin gespeichert, die häufig benötigt werden. Aus diesem Grund werden alle im Reorganisationsintervall angegebenen Sekunden der Cache nach den Aufrufen sortiert. Alle Bilder, die am Ende nicht innerhalb der Cachegesamtgröße liegen, bleiben in der Cache-Liste, aber die Daten (der Byte-Stream) werden entfernt. Dieser Vorgang wird nur ausgeführt, wenn das Cachelimit überschritten wird. Kommt es vor, dass eine große Datei das Cachelimit erreicht, es aber noch kleinere mit geringerer Gewichtung gibt, so werden diese in den Cache aufgenommen, wenn der Platz ausreichend ist.

Damit Bilder, die neu auf der Seite angezeigt werden, schnell in den Cache aufgenommen werden können, werden alle in der Cache-Trägkeit eingestellten Stunden ein Reset der Aufrufzähler ausgelöst. Generell gibt es immer zwei Zähler, aktuelles Intervall und letztes Intervall, damit an dem Punkt des Resets dennoch Werte für eine Sortierung existieren. Die Häufigkeit des Resets bildet somit die Trägheit des Systems ab. So wird erreicht, dass ein Bild, dass z.B. in den letzten zwei Stunden 10 mal aufgerufen wurde gewichtiger ist als eines das innerhalb der letzten acht Stunden 30 mal aber innerhalb der letzten zwei Stunden nur 5 mal aufgerufen wurde.

Grafische Darstellung der Cache-Nutzung im Backend

FileCache im Backend
War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich.
Es ist ein technisches Problem aufgetreten. Bitte wenden Sie sich telefonisch oder per E-Mail an uns.