Technische Übersicht über WebSphere eXtreme Scale

WebSphere eXtreme Scale ist ein elastisches, skalierbares speicherinternes Datengrid. Das Produkt übernimmt folgende Aufgaben: dynamische Zwischenspeicherung, Partitionierung, Replikation und Verwaltung von Anwendungsdaten und Geschäftslogik in mehreren Servern.

Da WebSphere eXtreme Scale keine speicherinterne Datenbank ist, müssen Sie spezielle Konfigurationsanforderungen berücksichtigen. Der erste Schritt bei der Implementierung eines Datengrids ist das Starten einer Stammgruppe und eines Katalogservice, der als Koordinator für alle anderen Java Virtual Machines auftritt, die am Datengrid teilnehmen und Konfigurationsdaten verwalten. Die Prozesse von WebSphere eXtreme Scale werden mit einfachen Befehlsscriptaufrufen über die Befehlszeile gestartet.

Der nächste Schritt ist das Starten der Serverprozesse von WebSphere eXtreme Scale für das Datengrid, um Daten zu speichern und abzurufen. Wenn Server gestartet werden, registrieren sie sich automatisch bei der Stammgruppe und beim Katalogservice, was ihnen eine Zusammenarbeit bei der Bereitstellung der Datengrid-Services ermöglicht. Je mehr Server gestartet werden, desto höher sind Kapazität und Zuverlässigkeit des Datengrids.

Ein lokales Datengrid ist ein einfaches Grid mit einer Instanz, d. h., alle Daten werden in einem einzigen Grid gespeichert. Wenn Sie WebSphere eXtreme Scale effektiv als speicherinternen Datenbankverarbeitungsbereich nutzen möchten, können Sie ein verteiltes Datengrid konfigurieren und implementieren. Die Daten im verteilten Grid werden so auf die verschiedenen eXtreme-Scale-Server verteilt, dass jeder Server einen Teil der Daten, eine so genannte Partition, enthält.

Ein wichtiger Konfigurationsparameter für verteilte Datengrids ist die Anzahl der Gridpartitionen. Die Griddaten werden in diese Anzahl von Untergruppen partitioniert, und jede dieser Untergruppen wird als Partition bezeichnet. Der Katalogservice sucht die Partition für eine bestimmte Information anhand des Schlüssels. Die Anzahl der Partitionen wirkt sich direkt auf die Kapazität und die Skalierbarkeit des Datengrids aus. Ein Server kann eine oder mehrere Datengridpartitionen enthalten. Somit ist die Größe einer Partition auf die Hauptspeicherkapazität des Servers beschränkt. Mit zunehmender Anzahl an Partitionen erhöht sich die Kapazität des Datengrids. Die maximale Kapazität eines Datengrids entspricht der Anzahl an Partitionen, multipliziert mit der Größe des verfügbaren Speichers jedes Servers. Ein Server kann eine JVM sein, aber Sie können Ihren eXtreme-Scale-Server so definieren, dass er für Ihre Implementierungsumgebung geeignet ist.

Die Daten einer Partition werden in einem Shard gespeichert. Für die Verfügbarkeit kann ein Datengrid mit Replikaten konfiguriert werden, die synchron oder asynchron sein können. Änderungen an den Griddaten werden im primären Shard vorgenommen und in den Replikat-Shards repliziert. Der von einem Datengrid belegte bzw. benötigte Gesamtspeicher kann mit Hilfe der folgenden Formel ermittelt werden: Größe des Datengrids mal (1 (für das primäre Shard) + Anzahl der Replikate).

WebSphere eXtreme Scale verteilt die Shards eines Datengrids auf die Server, aus denen sich das Grid zusammensetzt. Diese Server können sich auf demselben physischen Server oder auf unterschiedlichen physischen Servern befinden. Für die Verfügbarkeit werden Replikat-Shards auf anderen physischen Servern als die primären Shards gespeichert.

WebSphere eXtreme Scale überwacht den Status der zugehörigen Server und verschiebt Shards bei einem Ausfall und der anschließenden Wiederherstellung von Shards oder physischen Servern. Wenn beispielsweise der Server, der ein Replikat-Shard enthält, ausfällt, ordnet WebSphere eXtreme Scale ein neues Replikat-Shard zu und repliziert Daten vom primären Shard auf dem neuen Replikat. Wenn ein Server, der ein primäres Shard enthält, ausfällt, wird das Replikat-Shard als primäres Shard hochgestuft, und es wird ein neues Replikat-Shard erstellt. Beim Start eines weiteren Servers für das Datengrid, werden die Shards gleichmäßig auf alle Server verteilt. Die Neuverteilung wird als horizontale Vorwärtsskalierung (Scale-out) bezeichnet. Für eine horizontale Rückskalierung (Scale-in) können Sie einen der Server stoppen, um die von einem Datengrid konsumierten Ressourcen zu verringern. Daraufhin werden die Shards auf die verbleibenden Server verteilt.