In-Memory speichert alle Daten, Indizes und Systemeinstellungen im Arbeitsspeicher des jeweiligen Servers. Anders als beim Caching, das bei relationalenDatenbanken zum Einsatz kommt, werden die Daten bei In-Memory spalten-orientiert abgelegt. Diese Methode kann vor allem von Business Intelligence-Systemen genutzt werden, da Analyse-Abfragen auch stärker spalten- alszeilenorientiert arbeiten. Das Risiko für einen Datenverlust bei In-Memory istjedoch deutlich höher, da alle Daten im Arbeitsspeicher gespeichert werden.Deshalb sind beim Einsatz von In-Memory umfangreiche Replikationen einzu-richten, um eventuellen Datenverlusten vorzubeugen.Dieser Beitrag zielt darauf ab, die In-Memory-Technologie vorzustellen,ihre Vor- und Nachteile zu beleuchten sowie Anwendungsbereiche vorzustellen.
Die Verfügbarkeit von Daten sowie die Möglichkeit, diese dauerhaft abzuspeichern, sindmit heutigen Technologien bereits gegeben. Heutige wie auch zukünftige Anforderungensehen aber nicht nur eine Speicherung großer Datenvolumina vor, sondern Anforderungengehen – wie in vielen anderen Bereichen – in Richtung Optimierung und Performancestei-gerung. Die Unternehmen stehen vor dem Problem, die großen Datenvolumina schnellund effektiv abrufen und aufbereiten zu können, um den wachsenden Herausforderungen des Marktes effektiv entgegen zu treten. Führende IT Unternehmen entwickeln des-halb aktiv neue Speicherverfahren, um diese Datenmengen verarbeiten und verwalten zukönnen. Die In-Memory-Technologie – vor allem durch SAP voran getrieben – stellt sichgenau diesen Herausforderungen und nutzt als primäres Speichermedium den Haupt-speicher des jeweiligen Systems. SAP gibt an, durch Einsatz von In-Memory-Technologie10.000 Abfragen gegen 1,3 TeraByte Daten in einigen Sekunden ausführen zu können(McIlvaine, 2011).Es stellt sich die Frage, wie sich derartige Abfragegeschwindigkeiten erzielen lassen undwelche Komponenten zusammenarbeiten müssen, um diese Leistung zu erzielen. SAP nennthier ihr Produkt SAP HANA, das im Kern eine In-Memory-Datenbank beinhaltet.Doch ist weiterhin zu klären, ob In-Memory die Performance signifikant im Vergleichzu anderen Datenbanksystemen steigert, ob ein Einsatz eventuell weitere Vorteile mit sichbringt und welche Risiken zu berücksichtigen sind. Wie würde eine Kosten/Nutzenanalyseausfallen und wie viel muss an bestehenden Anwendungen verändert werden, um diese Per-formance ausschöpfen zu können?Mit diesen Fragen beschäftigt sich dieser Beitrag. Zunächst wird In-Memory genauer vonanderen Technologien abgegrenzt. Es folgt ein Überblick über mögliche Einsatzgebiete vonIn-Memory und welche Aspekte hierbei zu beachten sind. Danach wird erläutert, wie In-Me-mory technisch funktioniert. Vorteile und Nachteile werden erläutert und ein Vergleich mitanderen Datenbanksystemen gezogen. Zum Schluss folgt ein Fazit mit Ausblick.
Unter In-Memory versteht man prinzipiell das Speichern und Verwalten der Daten im Haupt-speicher (Plattner & Zeier, 2011). Der Einsatz löst sich vom klassischen Ansatz der gängigenDatenbearbeitung. Daten werden nicht mehr in Datenbanken auf Festplatten persistent ge-halten, verwaltet und manipuliert. Der Ansatz des Speicherns und Bearbeiten der Daten imHauptspeicher verspricht sehr große Performance-Verbesserungen hinsichtlich allgemeinerDatenzugriffe, aber auch bei der allgemeinen Prozessgestaltung. Erzielt werden diese Ver-besserungen durch den Entfall des Zugriffs auf Festplatten, die deutlich höheren Zugriffsge-schwindigkeiten beim Zugriff auf den Hauptspeicher sowie die einfacheren Zugriffsalgorith-men. Den Ansatz der In-Memory-Technologie gibt es im Prinzip schon seit mehreren Jahren,doch fristete diese bislang ein gewisses Nischendasein. Durch die sich ändernden Anforde-rungen an etablierte Systeme insbesondere im Bereich Business Intelligence gewinnt diesesThema zunehmend an Relevanz.In-Memory lässt sich heute in operativen Systemen vor allem zur Unterstützung ein-setzen. Hierbei kann die Technologie die erste Speicherschicht für Daten bilden und schnelleZugriffe darauf ermöglichen. Dies ist vor allem im mobilen Umfeld von Nutzen, da die End-geräte hier nur über begrenzte Ressourcen verfügen, der Benutzer aber viele Informationenspeichern möchte. Ein Beispiel zeigt den Einsatz der Oracle TimesTen Datenbank in einerTelefonabrechnungsanwendung.Wichtig ist die Replikation zu einer relationalen Datenbank, um dauerhafte Persistenzder Daten zu gewährleisten.Um heute effektiv Daten analysieren zu können, werden diese von den operativenDaten getrennt und in einem separaten Datawarehouse abgelegt. Allerdings liegen dieDaten auf Festplatten; um große Datenmengen analysieren zu können, müssen Aggre-gationen gebildet werden. Diese Problematik kann In-Memory komplett lösen. Da dieDaten im schnellen Hauptspeicher liegen und nach dem Spaltenprinzip abgelegt wurden,können diese schneller analysiert werden. Teils ermöglicht In-Memory erst eine Daten-analyse. Einige Meinungen gehen dahin, dass die Trennung von OLTP (operativ) undOLAP (analytisch) in Zukunft nicht mehr notwendig sein wird und eine neue Form OLXPentstehen wird.Bei der Anwendung der In-Memory-Technologie erfolgt ein Lesen und Schreiben vonDaten direkt im Hauptspeicher. Somit kann auf das Transferieren der Daten von und zu ande-ren Speichermedien verzichtet werden. Des Weiteren wird im Gegensatz zu herkömmlichenIT Systemen kein Unterschied zwischen Analyse- und Transaktionsdaten gemacht. Das heißt,es erfolgt immer ein Arbeiten mit den aktuellen Daten. Diese Technologie arbeitet dabei miteiner Kombination aus zeilen- und spaltenorientiertem Verarbeiten von Daten. Beide Metho-den haben ihre jeweiligen Vor- und Nachteile. Rein zeilenorientierte Datenbanken erlaubenschnelle schreibende Zugriffe. Doch durch die Anordnung der Daten ist der lesende Zugriffeingeschränkt und recht langsam. Rein spaltenorientierte Datenbanken haben genau denumgekehrten Effekt. Daher wird eine Kombination beider Methoden angestrebt. In-Memo-ry-Ansätze beschäftigen sich aber nicht nur mit dem Halten der Daten im Hauptspeicher,sondern auch mit Prozessen, die im Hauptspeicher definiert und ausgeführt werden. Diesist allgemein unter dem Begriff In-Memory-Computing bekannt. Würden nur die Daten imHauptspeicher gehalten und die Prozessabläufe herkömmlich erfolgen, müsste wieder einDatentransfer stattfinden und die Technik würde ausgebremst werden. Das heißt, die Pro-zesse im Hauptspeicher verarbeiten direkt die Daten, die im Hauptspeicher gehalten werden.(Plattner & Zeier, 2011)Die Stärken und Chancen dieser Technologie liegen im Entfall des Auslesens der Datenvon Festplatten und dem nun ermöglichten direkten Datenzugriff, wodurch sehr viel kürzereZugriffszeiten erzielt werden. Durch diese werden die Zeiten der Speichervorgänge, des Auslesensund des Manipulierens der Daten deutlich verkürzt.Diese Technik ermöglicht es, Prozesse in verschiedenen Bereichen deutlich effizienter zu gestalten bzw.bisher unmöglich erscheinende Prozesse erst zu realisieren. Es ist nun möglich, große Datenmengennicht nur zu verwalten, sondern diese auch in Echtzeit zu bearbeiten, zu analysieren undauszuwerten. Durch den Verzicht auf die Unterscheidung zwischen Analyse- und Trans-aktionsdaten wird außerdem die Möglichkeit geschaffen, immer aktuelle Daten auszuwerten.Bei allen Vorteilen muss aber klar erwähnt werden, dass es Risiken und Schwächengibt, die vor und bei einem Einsatz bedacht werden müssen. Die Technologie bedient sichdes Hauptspeichers. Hauptspeicher ist im Gegensatz zu Festplatten immer noch recht teuer.Die Preise haben sich zwar sehr zugunsten des Verbrauchers entwickelt, aber dennoch mussdavon ausgegangen werden, dass das Verhältnis von Speicherplatz zu Preis bei Festplattendeutlich günstiger ausfällt.Des Weiteren gehört Hauptspeicher zur Klasse der flüchtigen und somit nicht persisten-ten Speichermedien. Wird das Gerät, zu dem der Speicher gehört, gewollt oder ungewolltausgeschaltet, tritt definitiv ein Datenverlust ein. Daher muss ein hoher Aufwand betriebenwerden, der diese Datenverluste durch Back-up-Szenarien verhindert. Natürlich werden auchheute schon Ausfallszenarien definiert und implementiert, um einen schnellen Zugriff auf be-triebswichtige Daten zu ermöglichen, doch spielt wieder der höhere Kostenfaktor eine wich-tige Rolle. Jedes weitere Rechenzentrum steigert die Kosten eines Unternehmens immens.Des Weiteren werden zusätzlich weiterhin festplattengestützte Datenbanksysteme genutztwerden müssen, die für ein Back-up bzw. zur Auslagerung historischer Daten zur Verfügungstehen. Aufgrund dieser Punkte muss evaluiert werden, für welche Systeme/Prozesse einEinsatz der In-Memory-Technologie sinnvoll ist und für welche der zu treibende Aufwandunvertretbar hoch wäre.
Herkömmliche relationale Datenbanken mit den dazugehörigen Datenbankmanagement-systemen unterscheiden sich in vielen Aspekten wie z. B. Geschwindigkeit oder Kosten vonIn-Memory Lösungen. Klassische Datenbankmanagementsysteme verwenden Festplattenals Datenspeicher (On Disc). On Disc stellt großen Speicherplatz mittels immer größer undgünstiger werdender Speichermedien zu Verfügung. Diese Methode mag heutzutage an-gesichts von In-Memory Lösungen nicht mehr zeitgemäß erscheinen, da auch die Preisefür Arbeitsspeicher gefallen sind. Sie bietet aber nichtsdestotrotz weiterhin Vorteile gegen-über der In-Memory-Technologie. So ist beispielsweise die Erstellung paralleler Abfragenmöglich. Das fundierte Fachwissen sowie ein großer Erfahrungsschatz mit herkömmlichenDB-Systemen stehen den Vorteilen dieser neuen Technologie kritisch gegenüber. Ein gera-de aus Unternehmenssicht wichtiger Aspekt sind die umfangreichen Back-up Features fürRestore und Recover ohne Datenverlust bei On Disc Datenbank-Systemen.Eine Alternative zur In-Memory-Technik könnte der Einsatz von Solid State Drives (SSD)darstellen. SSDs stellen einen Mittelweg dar: Persistente Speicherung auf Festplatten inKombination mit einer verbesserten Performance gegenüber herkömmlichen Festplatten.Dies kann als Lösungsansatz für die empfindlichen herkömmlichen Festplatten gesehenwerden, da SSDs keine mechanischen Bauteile wie z. B. Discs, Lese- bzw. Schreibköpfe be-sitzen. SSDs können als große USB-Sticks angesehen werden. Ein Nachteil ist allerdings,dass jeder Speicherblock nur mit einer endlichen Anzahl an Schreibvorgängen genutztwerden kann. Dies schränkt die SSD-Lösungen auf Anwendungsfälle ein, die mit einer nurgeringen Anzahl an Datenänderungen einhergehen, da jede Datenbankänderung einemSchreibvorgang entspricht.
In-Memory ist schon seit vielen Jahren eine bekannte Technologie für die Speicherung vonDaten im Arbeitsspeicher. Diese steigert die Verarbeitungsgeschwindigkeit signifikant im Ver-gleich zu herkömmlichen Plattenspeichersystemen. Solange der physikalische Speicherort derentsprechenden Daten nicht ausschließlich eine In-Memory-Datenbank ist, kann diese Tech-nologie als Unterstützung und Beschleunigungswerkzeug effektiv eingesetzt werden. Lie-gen große Datenmengen zugrunde oder existieren bereits Abfragen, welche eine akzeptableAntwortzeit überschreiten, muss über den Einsatz von In-Memory nachgedacht werden.Da vor allem Hardware immer günstiger wird, sind auch Technologien wie In-Memory inder Zukunft durchaus eine Alternative. Die Datenmengen werden größer und die Anforde-rungen, diese effizient zu analysieren, sind schon heute gegeben.
Fabian, B., & Günther, O. (2011). In-Memory-Datenmanagement für Business Intelligence. Wirtschaftsinformatik 53, 388. Kolodziej, C. (2011 (2)). Was taugt der In-Memory-Ansatz. BI-Spektrum. Lehner, W. (2011). In-Memory Data Management – Evolution oder Revolution. Wirtschaftsinformatik 53, 386-387. Löchtenberger, J., & Vossen, G. (2011). Hauptspeicherdatenbanktechnologie: Herausforderungen und weitere Entwicklungen. Wirtschaftsinformatik 53, 384-385. Loos, P. (2011). In-Memory-Datenmangement in betrieblichen Anwendungssystemen. Wirtschaftsinformatik, 383-384. Lörcher, W. (2011). CIO. Abgerufen am 13. Mai 2012 von http://www.cio.de/xing/2292452/index.html McIlvaine, H. (2011). SAP.Info. Abgerufen am 20. Juni 2012 von SAP.Info: http://en.sap.info/hana-inmemory-ibm-x3850-analytics/49008 Plattner, H., & Zeier, A. (2011). In-Memory Data Management – An Inflection Point for Enterprise Applications. Springer. Zeier, A., J., K., & J., M. (2011). Potenziale von In-Memory-Technologien. Wirtschaftsinformatik 53, 385-386.
Boris MarinkovTätig bei BASF IT Services GmbH und studiert berufsintegrierend Wirtschaftsinformatik an der FH Mainz.
Michel PaarTätig bei IPS Software GmbH und studiert berufsintegrierend Wirtschaftsinformatik an der FH Mainz