Dateninvalidierung

Zum Entfernen veralteter Cachedaten können Sie einen administrativen, ereignisbasierten oder programmgesteuerten Invalidierungsmechanismus verwenden.

[Version 8.5 und höher]

Administrative Invalidierung

Sie können die Webkonsole oder das Dienstprogramm xscmd verwenden, um Daten basierend auf dem Schlüssel ungültig zu machen. Sie können die Cachedaten mit einem regulären Ausdruck filtern und die Daten dann auf der Basis des regulären Ausdrucks ungültig machen.

Ereignisgesteuertes Ungültigmachen

Teilcaches und vollständige Caches können mit Hilfe eines Ereignisgenerators wie Java Message Service (JMS) ungültig gemacht oder aktualisiert werden. Das Ungültigmachen mit JMS kann manuell an jeden Prozess gebunden werden, der das Back-End über einen Datenbankauslöser aktualisiert. Es wird ein JMS-ObjectGridEventListener-Plug-in in eXtreme Scale bereitgestellt, das Clients benachrichtigen kann, wenn Änderungen im Servercache vorgenommen wurden. Dieser Typ von Benachrichtigung verkleinert das Zeitfenster, in dem der Client veraltete Daten sieht.

Der ereignisgesteuerte Mechanismus für Ungültigmachen setzt sich gewöhnlich aus den folgenden drei Komponenten zusammen:

  • Ereigniswarteschlange: In einer Ereigniswarteschlange werden die Datenänderungsereignisse gespeichert. Die Ereigniswarteschlange kann eine JMS-Warteschlange, eine Datenbank, eine speicherinterne FIFO-Warteschlange oder ein beliebiges Manifest sein, das Datenänderungsereignisse verwalten kann.
  • Ereignis-Publisher: Ein Ereignis-Publisher veröffentlicht die Datenänderungsereignisse in der Ereigniswarteschlange. Ein Ereignis-Publisher ist gewöhnlich eine Anwendung, die Sie erstellen, oder eine Implementierung eines eXtreme-Scale-Plug-ins. Der Ereignis-Publisher weiß, wann die Daten geändert werden, oder ändert die Daten selbst. Wenn eine Transaktion festgeschrieben wird, werden Ereignisse für die geänderten Daten generiert, und der Ereignis-Publisher veröffentlicht diese Ereignisse in der Ereigniswarteschlange.
  • Ereigniskonsument: Ein Ereigniskonsument konsumiert Datenänderungsereignisse. Der Ereigniskonsument ist gewöhnlich eine Anwendung, die sicherstellt, dass die Daten im Zielgrid mit den neuesten Änderungen aus anderen Grids aktualisiert werden. Dieser Ereigniskonsument interagiert mit der Ereigniswarteschlange, um die neuesten Datenänderungen abzurufen, und wendet die Datenänderungen auf das Zielgrid an. Die Ereigniskonsumenten können APIs von eXtreme Scale verwenden, um veraltete Daten ungültig zu machen oder um das Grid mit den neuesten Daten zu aktualisieren.

JMSObjectGridEventListener hat beispielsweise eine Option für ein Client/Server-Modell, bei der die Ereigniswarteschlange eine festgelegte JMS-Destination ist. Alle Serverprozesse sind Ereignis-Publisher. Wenn eine Transaktion festgeschrieben wird, ruft der Server die Datenänderungen ab und veröffentlicht sie in der festgelegten JMS-Destination. Alle Clientprozesse sind Ereigniskonsumenten. Sie empfangen Datenänderungen von der festgelegten JMS-Destination und wenden die Änderungen auf den nahen Cache des Clients an.

Weitere Informationen finden Sie unter Mechanismus für Clientinvalidierung aktivieren.

Programmgesteuertes Ungültigmachen

Die APIs von WebSphere eXtreme Scale unterstützen die manuelle Interaktion zwischen nahem Cache und Servercache über die API-Methoden "Session.beginNoWriteThrough()", "ObjectMap.invalidate()" und "EntityManager.invalidate()". Wenn ein Client- oder Serverprozess einen Teil der Daten nicht mehr benötigt, können Sie mit den Methoden zum Ungültigmachen Daten aus dem nahen Cache bzw. Servercache entfernen. Die Methode "beginNoWriteThrough" gilt für alle ObjectMap- und EntityManager-Operationen im lokalen Cache ohne Aufruf des Loaders. Wenn die Methode von einem Client aufgerufen wird, gilt die Operation nur für den nahen Cache (der ferne Loader wird nicht aufgerufen). Wird die Methode im Server aufgerufen, gilt die Operation nur für den Serverbasiscache ohne Aufruf des Loaders.

Sie können den Mechanismus für programmgesteuertes Ungültigmachen zusammen mit anderen Techniken verwenden, um festzustellen, wann die Daten ungültig gemacht werden müssen. Diese Methode für Ungültigmachen verwendet beispielseise ereignisgesteuerte Mechanismen für das Ungültigmachen, um die Datenänderungsereignisse zu empfangen, und anschließend APIs, um die veralteten Daten ungültig zu machen.