Web-Anwendungen, IoT-Projekte, mobile Applikationen – für viele ihrer Initiativen zur digitalen Transformation benötigen Unternehmen bekanntlich eine Netzwerkinfrastruktur mit hoher Rechen­geschwindigkeit und Skalierbarkeit. Einen Lösungsansatz bietet das sogenannte In-Memory Computing.

Unternehmen setzen zunehmend auf IMC-Technik (In-Memory Computing), um Echtzeitgeschwindigkeiten zu erreichen und Lastspitzen abfangen zu können. Durch die wachsende Verbreitung von IMC wird auch die Realisierung einer Memory-zentrierten Architektur interessant. Eine solche nutzt die Vorteile von IMC bei Geschwindigkeit und Skalierbarkeit, bietet jedoch gleichzeitig für datenintensive Anwendungen größere Flexibilität und einen besseren ROI (Return of Investment). Außerdem bedient sie den Bedarf nach höheren Rechengeschwindigkeiten und mehr Skalierbarkeit.

Disk-basierte Datenbanken haben – vor allem was die Geschwindigkeit angeht – ihre physikalischen Grenzen. Um die Leistungsfähigkeit von Rechenzentren zu verbessern, verarbeitet man die Daten daher in transaktionalen Datenbanken. Für die Analyse kommen hierbei separate analytische Datenbanken (OLAP) zum Einsatz. Dies hat den Nachteil, dass die Daten der transaktionalen Datenbanken (OLTP) einen periodischen ETL-Prozess (Extract, Transform, Load) durchlaufen müssen, um sie in die OLAP-Datenbanken importieren zu können. Durch die Periodizität der ETL-Prozesse und den damit verbundenen Verzögerungen sind Echtzeitentscheidungen nicht mehr möglich. Viele Unternehmen brauchen jedoch, teilweise auch rechtlich, eine Verarbeitung in Echtzeit. Die Lösung für dieses Problem ist eine IMC-Anwendung mit einer hybriden transaktionalen beziehungsweise analytischen Verarbeitung (Hybrid Transactional/Analytical Processing, HTAP). Diese ermöglicht Echtzeitanalysen eines kompletten Betriebsdatensatzes.

IMC-Lösungen umgehen die Latenz des Disk-Zugriffs, indem sie die Daten im RAM zwischenspeichern und so schneller verarbeiten können. Das war vor allem früher nur sehr beschränkt möglich, da RAM schlicht zu teuer war. Um hohe Kosten zu vermeiden, teilt man die Processing-Arbeit in einem In-Memory Datagrid über ein Cluster von Commodity-Servern auf. Der Cluster nutzt den verfügbaren Arbeitsspeicher und die CPU-Leistung zur Skalierung der Rechenprozesse. IMC-Lösungen bieten neben In-Memory Datagrids mittlerweile auch In-Memory-Datenbanken, Streaming-Analysen, maschinelles Lernen, ACID-Transaktionen und ANSI-99-SQL-Unterstützung. Dank einfacher Integration von In-Memory Datagrids in bestehende Anwendungs- und Daten-Layer durch 64-Bit-Prozessoren und APIs können Rechenzentren In-Memory-Geschwindigkeiten sowie eine hohe Skalierbarkeit und Verfügbarkeit erreichen. Integrierte In-Memory-Plattformen vereinfachen die Beschleunigung und Skalierung vorhandener Anwendungen erheblich und reduzieren die Implementierungs- und Betriebskosten.

Da die Kosten für RAM mittlerweile etwas gesunken sind, besteht für viele Unternehmen nun die Möglichkeit, auf In-Memory-Datenbanken zu wechseln und die bestehenden Disk-basierten Datenbanken vollständig zu ersetzen. Sie können bestehende Anwendungen beschleunigen oder die Grundlage für das Erstellen neuer oder neu strukturierter Anwendungen bilden, die die Vorteile eines verbreiteten Computings besitzen.

Wichtige Daten im RAM

IMC-Lösungen haben jedoch einen großen Nachteil: Alle Daten müssen in den Arbeitsspeicher passen. Da RAM im Vergleich zu Festplatten immer doch deutlich teurer ist, lassen viele Unternehmen nicht alle ihre Daten im Arbeitsspeicher. Der vollständige Datensatz bleibt auf Festplatten, was natürlich zu Geschwindigkeitseinbußen führt. Eine Memory-zentrierte Architektur löst dieses Problem: Die wichtigsten und aktuellsten Daten werden sowohl auf der Festplatte als auch im Arbeitsspeicher gespeichert. So lassen sich In-Memory-Geschwindigkeiten erreichen. Durch diese parallele Architektur kann der Datensatz den zur Verfügung stehenden RAM übersteigen – der vollständige Datensatz liegt auf der Festplatte und das System ist dennoch in der Lage, Daten im Arbeitsspeicher mit enormer Leistung zu verarbeiten. Zudem lassen sich zahlreiche Speichertypen wie Solid-State-Laufwerke (SSDs), Flash-Speicher, 3D XPoint und weitere verwenden.

Wie jedoch unterscheidet sich eine Memory-zentrierte Architektur vom normalen Caching Disk-basierter Daten im Arbeitsspeicher? Unternehmen haben bei einer Memory-zentrierten Architektur mehr Flexibilität und Kostenkontrolle. Wenn der verfügbare Arbeitsspeicher überschritten wird, optimiert eine solche Datenbank die Daten so, dass im Arbeitsspeicher höherwertige und häufig benötigte Daten gehalten werden. Weniger genutzte Daten holt sie hingegen erst bei Bedarf von der Festplatte in den Arbeitsspeicher. Der komplette Datensatz ist stets auf der Festplatte gespeichert.

Die Regulierung welche Daten im Arbeitsspeicher bleiben ist bei normalem Caching nicht möglich, bei Memory-zentrierten Architekturen hingegen schon. Das ermöglicht Unternehmen höhere Geschwindigkeiten bei geringeren Infrastrukturkosten.

Zusätzlich sorgen Datenbanken mit Memory-zentrierter Architektur für robustere Systeme. Bei einem Reboot muss das System nicht alle Daten erneut in den Arbeitsspeicher laden. Je nach Größe des Datensatzes und der Geschwindigkeit des Netzwerks kann das Stunden dauern. Dadurch dass sich die Daten auf der Festplatte schon während des Hochfahrens wieder verarbeiten lassen, ist das System schneller wieder einsatzfähig.

Die Nachfrage nach schnelleren Systemen, die noch größere Mengen an Daten verarbeiten können, wächst stetig. Die digitale Transformation wird diesen Prozess noch verstärken. Für viele Unternehmen wird es also in Zukunft interessant sein, auf In-Memory-Lösungen zu setzen. Eine komplette IMC-Datenbank schreckt jedoch aufgrund der hohen RAM-Preise viele ab. Eine Memory-zentrierte Architektur mit ihrer Flexibilität bei der Steuerung von Leistung und Kosten ist eine interessante Möglichkeit für viele Unternehmen, das Potenzial von In-Memory Computing auszunutzen.

Abe Kleinfeld ist Präsident und CEO von GridGain Systems, www.gridgain.com.