Was unterscheidet In-Memory Datagrids von In-Memory-Datenbanken?

Was sind In-Memory Datagrids?

Eine der größten Herausforderungen für IT-Abteilungen ist eine kosteneffiziente Skalierung der Rechenleistung, gerade auch für bestehende Anwendungen. In-Memory Data Grids (IMDGs) bieten potenziell hohen Geschwindigkeits- und Skalierbarkeitszuwachs, ohne dass die Anwendungen oder Datenschichten zu verändern und hinzuzufügen sind.

Ein IMDG besteht aus einem Server-Cluster mit dessen verfügbaren Speichern und entsprechender CPU-Leistung. IMDGs verteilen die Datensätze gleichmäßig auf die Clusterknoten. Dabei werden parallel die Prozesse auf den Knoten verarbeitet, auf denen sich die relevanten Daten befinden. So ist eine einfache Skalierung durch Hinzufügen weiterer Knoten zum Cluster möglich. Dabei wird das IMDG zwischen Anwendungs- und Datenlayer eingefügt. Es verschiebt eine Kopie der plattenbasierten Daten aus RDBMS-, NoSQL- oder Hadoop-Datenbanken in den Arbeitsspeicher. Das ermöglicht die Verarbeitung ohne Verzögerungen, da das ständige Auslesen und Schreiben der Daten von der Festplatte wegfällt.

Beispielhaftes In-Memory Data Grid (Bild: GridGain)

In einer Public- oder Private-Cloud-Umgebung lassen sich Knoten nach Bedarf hinzufügen oder vom IMDG-Cluster abziehen, um Flexibilität und kostengünstige Skalierung zu ermöglichen. Einige IMDGs bieten zudem Support von ANSI-99-SQL- und ACID-Transaktionen, erweiterte Sicherheitsfeatures, Unterstützung für Stream-Verarbeitung, maschinelles Lernen sowie Spark- und Hadoop-Integration.

Eine Einschränkung vieler In-Memory-Compting-Angebote ist jedoch, dass alle Daten in den Arbeitsspeicher passen müssen. Da Festplatten immer noch billiger sind als RAM, entscheiden sich viele Unternehmen dafür, nicht alle Daten in den Arbeitsspeicher zu legen, sondern den vollständigen Datensatz auf Festplatte zu belassen, was wiederum Geschwindigkeitseinbußen zur Folge hat. Eine speicherzentrische Architektur löst das Problem, indem sie mit ihren zugrunde liegenden Techniken die Verwendung anderer Speichertypen wie Solid-State-Laufwerke (SSDs), Flash-Speicher und 3D XPoint ermöglicht.

Die wichtigsten oder aktuellsten Daten bei Memory-zentrierten Architekturen liegen sowohl auf der Festplatte als auch im Arbeitsspeicher. So lässt sich die In-Memory-Geschwindigkeit erreichen. Durch diese Architektur kann der Datensatz den zur Verfügung stehenden RAM übersteigen – wobei der vollständige Datensatz auf der Festplatte liegt und das System in der Lage ist, Daten im Arbeitsspeicher oder auf dem darunter liegenden Laufwerk mit enormer Leistung zu verarbeiten.

Es besteht ein entscheidender Unterschied zum Caching Disk-basierter Daten im Arbeitsspeicher. Eine Memory-zentrierte Architektur bietet Unternehmen mehr Flexibilität und Kontrolle über mögliche Leistung und Kosten. Daten werden dahingehend optimiert, dass alle Daten auf der Festplatte liegen - wobei sich höherwertige und häufiger benötigte Daten zusätzlich im Arbeitsspeicher befinden. Seltener benötigte Daten bleiben hingegen nur auf der Festplatte. So kann die Datenmenge den Arbeitsspeicher überschreiten, was eine optimale Leistung bei gleichzeitiger Minimierung der Infrastrukturkosten ermöglicht.

Ein weiterer Vorteil von IMDGs mit speicherzentrierter Architektur besteht darin, dass im Falle eines Reboots nicht alle Daten erneut in den Arbeitsspeicher zu laden sind. Diese Verzögerung, die je nach Größe des Datensatzes und der Geschwindigkeit des Netzwerks Stunden dauern kann, führt leicht zur Verletzung von Service Level Agreements (SLAs). Die Möglichkeit, Daten von der Festplatte schon während des Hochfahrens verarbeiten zu können, macht das System schneller wieder einsatzbereit. Während die Systemleistung anfänglich der von laufwerkbasierten Systemen ähnelt, wird das System schnell wieder fast alle Operationen mit In-Memory-Geschwindigkeit ausführen können, sobald die Daten in den Arbeitsspeicher zurückgeladen sind.

Auswahl eines IMDGs

Unternehmen sollten verschiedene Kriterien beachten, wenn sie sich für ein IMDG entscheiden, um sicherzustellen, dass es ihren Bedürfnissen entspricht. Ein IMDG ist nötig, wenn:

  • die Leistung der Anwendung eines erhöhten Benutzeraufkommens nicht mit akzeptabler Effizienz stemmen kann.
  • Reaktionsfähigkeit in Echtzeit erforderlich ist.
  • die Anwendung vom Zugriff auf Daten aus einer verteilten, hochverfügbaren Datenschicht profitieren würde.
  • die Zeit oder das Budget fehlt, um die Anwendung in eine In-Memory-Datenbank zu überführen.
  • die gesamte Systemarchitektur durch den Umstieg auf HTAP vereinfacht werden würde.
  • eine flexible, skalierbare Architektur benötigt wird, die sich On-Premise, in der Cloud oder in einer hybriden Umgebung einsetzen lässt.
  • geplant ist, die Architektur nach und nach auf eine In-Memory-Datenbank umzustellen. IMDG als Teil einer In-Memory-Computing-Plattform ermöglicht es, ohne Schwierigkeiten umzusteigen, um anschließend eine In-Memory-Datenbank aufzubauen.

Beispiele für In-Memory Data Grids sind Hazelcast, GigaSpaces, Oracle Coherence, Apache Geode/Pivotal GemFire und Infinispan. Manche Anbieter wie GridGain beziehungsweise Open-Source-Projekte wie Apache Ignite bieten Data Grids als Teil einer In-Memory- Computing-Plattform ab.