Sergey Nivens - Fotolia

Grundlagen und Entstehung des In-Memory Computing

Die Idee, dass mehr Daten im RAM die Verarbeitung beschleunigt, ist nicht neu. Doch inzwischen zeigen sich auch die Grenzen von In-Memory-Technologien.

Ob künstliche Intelligenz (KI), Echtzeit-Analytics, Robotersteuerungen oder Online-Transaktionen – in allen Fällen nehmen die zugehörigen Datenmengen und der damit verbundene Rechenbedarf zu. Mit festplattenbasierten Systemen sind diese Aufgaben nicht mehr zu bewältigen.

Daher werden seit einigen Jahren In-Memory-Plattformen entwickelt, mit denen versucht wird, möglichst viele Daten direkt im RAM zu halten und gleichzeitig den Datenaustausch zwischen Arbeitsspeicher, Programmen und Prozessor zu beschleunigen.

In-Memory-Plattformen bestimmen daneben zunehmend hyperkonvergente Infrastrukturen (HCI) und die Softwareentwicklung. Auch moderne Komponenten wie Container und Microservices machen nur Sinn, wenn so viele davon wie möglich im Hauptspeicher gehalten werden können.

Rasantes Wachstum

Der Wunsch, alle Daten und Softwarekomponenten permanent im Arbeitsspeicher zu halten, hat aber auch Nachteile. Einer davon ist der Preis. Trotz des kontinuierlichen Preisverfalls bei RAM beträgt der Preisunterschied gegenüber HDDs immer noch rund 50 Prozent. Trotzdem weisen die Prognosen für den In-Memory-Einsatz nach oben. Gartner prognostiziert zum Beispiel, dass der Markt für In-Memory-Technologien bis 2022 um jährlich 22 Prozent auf 13 Milliarden US-Dollar anwachsen wird.

In-Memory-Technologie ist an sich nicht neu. Schon vor über 20 Jahren gab es die ersten Ansätze. Damals wurden Hauptspeichererweiterungen als Datenbank-Cache genutzt. Das Prinzip ist einfach und noch heute weit verbreitet: einmal von der Festplatte geladene Daten werden nach erfolgter Bearbeitung nicht sofort zurückgeschrieben, sondern verbleiben zunächst im Cache.

Die Überlegung ist, dass es wahrscheinlich ist, dass dieselben Daten mehrmals für weitere Bearbeitungen benötigt werden. Mit komplizierten Algorithmen wird gesteuert, welche Daten im Moment heiß, warm und kalt sind. In jedem Fall gilt: Je größer der Cache, umso schneller die Bearbeitung. Trotzdem bleibt ein Flaschenhals, da nicht alle Daten im Hauptspeicher gehalten werden können.

In diese Kategorie des Caching fallen auch In-Memory Data Grids. Dabei werden mehrere Cache-Speicher auf mehrere Server verteilt. „Mit gut eingestellten Grids lassen sich Performance-Verbesserungen um den Faktor 5 bis 20 erzielen“, sagt Abe Kleinfeld, CEO von GridGain.

Das Arbeitspferd: In-Memory-Datenbanken

Der nächste Level sind In-Memory-Datenbanken. Hier wird die gesamte Datenbank im Hauptspeicher gehalten. SAP HANA gehört in diese Kategorie. HANA soll laut SAP 10.000 Mal schneller sein als vergleichbare Installationen auf einer normalen Festplatte. Das trifft aber nur zu, wenn alle Daten im RAM sind.

SAP hat für HANA strukturelle Änderungen vorgenommen. So sind die Daten komprimiert, werden nicht mehr indexiert und in Spaltenform abgespeichert. Die In-Memory-Datenbank Terracotta DB von Software AG gehört ebenfalls in diese Kategorie.

„Anders als bei traditionellen NoSQL-Datenbanken ist Terracotta DB eine In-Memory-Datenbank, und das bedeutet vorhersehbare Latenz sowie die gleichzeitige Nutzung für analytische und transaktionsorientierte Workloads“, sagt Wolfram Jost, CTO der Software AG.

Der Analytics- und KI-Spezialist Teradata bietet ebenfalls eine Lösung an, bei der Teile seiner massiv-parallel Teradata Database In-Memory gehalten werden. Aktuell läuft ein Rechtstreit zwischen SAP und Teradata, in dem das Unternehmen SAP vorwirft, dass HANA Technologie von Teradata verwendet.

Neue Technologie schafft neue Anwendungen

Die drei Architekturen haben verschiedene Anwendungsbereiche geschaffen. Einer ist In-Memory Streaming. Diese Technologie ist vor allem für Anwendungen im IoT- und M2M-Bereich von Bedeutung, wo tausende Sensoren fortlaufend Daten schicken, die schnell bearbeitet und ausgewertet müssen, bevor sie in die Datenbanken fließen. Apache Kafka ist zum Beispiel eine Anwendung hierfür. LinkedIn ist einer der bekanntesten Anwender der Open-Source-Lösung. Die Software AG bietet mit Apama ebenfalls eine Anwendung in diesem Segment an, die Forrester Research als führend eingestuft hat.

Der nächste Entwicklungsschritt war der In-Memory Accelerator. Dahinter verbirgt sich ein komplexer Cache-Manager für Daten und Programmanweisungen, der einfach anzuwenden ist. Das heißt, nach der Installation der Software wird die Verarbeitung automatisch schneller, da keine komplizierte Deployment- und Operations-Regeln vorgegeben werden müssen.

Nach dem In-Memory Accelerator folgte der letzte Schritt: Die Schaffung von In-Memory-Computing-Plattformen. Ausgangspunkt sind die zunehmend vielfältigen und parallelen Nutzungen von unterschiedlichen In-Memory-Technologien, also Cache, Data Grids, In-Memory Streaming und In-Memory Accelerator. Diese heterogene Umgebung ist schwierig zu administrieren und machte die Schaffung einer übergeordneten Plattform nötig, mit der alle In-Memory-Technologien einheitlich gemanagt werden können – und zwar Software und Hardware gleichzeitig.

Facebook: Die Grenzen von In-Memory

Doch In-Memory ist nicht die Universallösung für alle Datenverarbeitungsprobleme. So muss man bei In-Memory Data Grids auch die Zeit berücksichtigen, die benötigt wird, um Daten zwischen den verschiedenen Servern zu transportieren. Bei praktisch allen großen und verteilten Anwendungen kommen Overhead-Zeiten hinzu, die die Performance beeinträchtigen.

Und auch das über viele Jahre gültige Argument, dass RAM immer billiger wird, relativiert sich derzeit. Zum einen wird RAM wieder teurer, zum anderen werden HDDs weiter billiger und schneller. Hinzu kommt der Mittelweg mit SSD-Laufwerken.

„Vor allem bei schnell wachsenden IT-Infrastrukturen muss man mit In-Memory-Architekturen äußerst vorsichtig sein, denn häufig wachsen die Datenberge schneller, als dass man RAM sinnvoll hinzufügen kann“, berichtet Bobby Johnson über seine Erfahrungen als Chef der IT-Architektur und –Infrastruktur bei Facebook.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Kontinuierlich lernende Systeme mit In-Memory Computing.

Kostenloser E-Guide: In-Memory Analytics mit SAP HANA.

In-Memory-Computing: Oracle und SAP im Kampf um die Marktführerschaft.

Erfahren Sie mehr über Big Data