
Der VM Container Cache ist ein Cache für beliebige VMC-Objekte. Er verwendet Shared Closures zur Ablage der Objekte im Shared Memory. Der Zugriff auf Cache-Objekte erfolgt über String-Schlüssel.
In der VMC Systemadministration (Transaktion SM53) können Sie den Zustand des Caches überwachen sowie die Konfiguration vornehmen.
Applikationen oder Infrastruktur-Dienste, die den Cache benutzen wollen, müssen eine entsprechende Cache-Konfiguration anlegen. Diese finden Sie im Abschnitt Anwendungen anzeigen unter Konfiguration.
Innerhalb einer Cache Konfiguration kann der Benutzer Namensräume für seine Cache-Objekte reservieren. Dieser Namensraum wird als Cache- Region bezeichnet. Alle Cache-Objekte sind genau mit einer Cache Region verknüpft. Die Namensräume sind - rein von ihrer Funktionalität betrachtet - flach organisiert, es gibt keine Vater-Kind-Beziehungen zwischen einzelnen Regionen. Um die Anzeige übersichtlicher zu machen, wird eine Vater-Kind-Beziehung zwischen Regionen über den Slash '/' im Regionsnamen hergestellt, z.B. wird eine Region /IPC/Pricing/Configuration als Kind-Region von /IPC/Pricing betrachtet.
Eine Cache-Region stellt nicht nur den Namensraum für Cache-Objekte zur Verfügung, sondern ist die zentrale, konfigurierbare Einheit aus Anwendungssicht. Die Konfigurationsoptionen für eine Region unterteilen sich in die Einheiten Regions- und Elementkonfiguration.
Regionskonfiguration
|
Option |
Bedeutung und mögliche Werte |
|
Maximale Größe in Bytes/ Maximale Anzahl von Objekten |
Folgende Werte sind bei diesen beiden Optionen von Bedeutung: Upper Limit: bezeichnet die maximale Größe, die nicht überschritten werden darf. Wird diese Größe erreicht, verdrängt der Cache veraltete Objekte aus der Cache-Region, bis das Start-of-Eviction-Limit unterschritten ist. Erst dann nimmt er wieder Anfragen entgegen. Defaultwert: 35% des Shared Pools (vgl. Ressourcenverwaltung im VM Container). Critical Limit: Wird das Critical Limit überschritten, werden aktiv bei einer Cache-Anfrage Objekte aus der Cache-Region verdrängt. Die Verdrängung stoppt, wenn das Start-Of-Eviction-Limit unterschritten wird. Defaultwert: 95% des Upper Limit. Start-Of-Eviction: Dieses Limit wird von einem Hintergrund-Verdrängungs-Job kontrolliert, der in regelmäßigen Abständen läuft. Ist dieses Limit überschritten, werden so viele Objekte aus der Region entfernt, dass man unterhalb des Limits gelangt. Dadurch sollten die anderen Limits nur sehr selten erreicht werden. Defaultwert: 90% des Upper Limit. |
|
Priorität |
Die Priorität kann folgende Werte haben: Highest High Medium low lowest Wenn die Cache-Infrastruktur feststellt, dass die Gesamt-Cache-Größe ein bestimmtes Limit überschritten hat, muss eine Cache-Region gewählt werden, aus der Elemente entfernt werden. Die Priorität dient dann als Hinweis für die Cache-Infrastruktur, wie wichtig bestimmte Cache-Regionen und somit Cache-Elemente sind. |
|
Mandantenabhängig |
Sie müssen für jede Cache-Region angeben, ob sie mandantenabhängig oder -unabhängig ist. Wenn eine Cache-Region als mandantenabhängig konfiguriert wird, werden die Cache-Objekte nicht nur mit der Cache-Region, sondern auch mit dem entsprechenden Mandanten assoziiert, mit dem eine Cache-Anfrage gestartet wurde. |
|
Speicher-Plugin (Storage Plugin) |
Das Speicher-Plugin gibt an, wo die Cache-Objekte einer Region gespeichert werden. Es gibt zum einen lokale Speicher-Plugins, die die Cache-Objekte im lokalen VM Heap speichern, und zum anderen Speicher-Plugins, die die Cache-Objekte im Shared Memory ablegen. Um die VMs in ihrer Größe klein zu halten, werden im VM Container ausschließlich Speicher-Plugins verwendet, die die Objekte im Shared Memory ablegen. |
|
Verdrängungs-Plugin (Eviction Policy Plugin) |
Das Verdrängungs-Plugin ist für die Verdrängungsstrategie von Cache-Objekten verantwortlich. Stellt die Cache-Infrastruktur fest, dass Objekte aus einer Cache-Region entfernt werden müssen, wird das Verdrängungs-Plugin nach einem entsprechenden Cache-Eintrag gefragt, der verdrängt werden kann. Typische Beispiele für eine Verdrängungsstrategie ist ein LRU (Least Recently Used) Verfahren, das Cache-Objekte aufgrund des Alters diskriminiert. |
|
Cache-Leser-Plugin (Cache Reader Plugin) |
Des Weiteren kann der Cache Benutzer ein so genanntes Cache-Leser-Plugin registrieren. Wird ein Cache-Objekt erfragt und dieses wird nicht im Cache gefunden, erfragt die Cache-Infrastruktur das entsprechende Objekt beim Cache-Leser. |
|
Speicherung von gescheiterten Zugriffen auf Cache-Leser-Plugin |
Liefert das Cache-Leser-Plugin kein entsprechendes Objekt zurück (z.B. weil ein Eintrag in der Datenbank nicht existiert), kann der Cache diesen Fehlzugriff speichern. Beim nächsten Zugriff auf das Objekt wird dann das Cache-Leser-Plugin nicht mehr gefragt, sondern es wird direkt die Antwort zurückgegeben, dass das Objekt nicht im Cache ist. Damit werden beispielsweise unnötige Datenbankzugriffe vermieden. |
Elementkonfiguration
Die Elementkonfiguration nimmt direkten Bezug auf einzelne Cache-Objekte und erlaubt das Setzen folgender Parameter:
|
Option |
Bedeutung und mögliche Werte |
|
Time-to-Live |
Der Time-to-Live Parameter gibt an (in Millisekunden), wie lang ein Cache-Objekt gültig sein soll, nachdem es in die Cache-Region gelegt wurde. |
|
Absoluter Zeitstempel für Verdrängung |
Der absolute Verdrängungs-Zeitstempel bezeichnet ein genaues Datum (oder auch nur Uhrzeit), bis wann ein Objekt gültig ist. |
|
Verdrängungsperiode |
Soll ein neues Objekt in eine Region gelegt werden und ist der absolute Zeitstempel der Region abgelaufen, gibt die Verdrängungsperiode an, wie der Zeitstempel aktualisiert werden soll. |
Zusätzlich zu diesen statischen Konfigurationsmöglichkeiten können Sie zur Laufzeit so genannte Cache-Gruppen anlegen. Cache-Gruppen sind mit einer Cache-Region assoziiert und erlauben die Gruppierung von Cache-Objekten innerhalb einer Region. Für jede Cache Gruppe kann eine Elementkonfiguration angegeben werden.
Sie können in der VMC Systemadministration (SM53) die Cache-Konfiguration ändern sowie den Cache Zustand anzeigen.
Weitere Informationen finden Sie in folgenden Abschnitten: