Bibtex

@InCollection{,
  Year    = "2019", 
  Title    = "In-Memory Data Management", 
  Author    = "Plattner, Prof. Dr. Hasso", 
  Booktitle    = "Gronau, Norbert ; Becker, Jörg ; Kliewer, Natalia ; Leimeister, Jan Marco ; Overhage, Sven (Herausgeber): Enzyklopädie der Wirtschaftsinformatik – Online-Lexikon",
  Publisher    = "Berlin : GITO",
  Url    = "https://wi-lex.de/index.php/lexikon/informations-daten-und-wissensmanagement/datenmanagement/datenbanksystem/in-memory-data-management/", 
  Note    = "[Online; Stand 4. November 2024]",
}

In-Memory Data Management

Hasso Plattner


In-Memory Data Management (IMDM) bezeichnet die primäre Verwaltung von Daten im Hauptspeicher von einem oder mehreren Servern.

Zusammenfassung

Daten werden üblicherweise in Datenbanken gespeichert und verwaltet. Beim IMDM werden die Daten primär im Hauptspeicher abgelegt und – zur Absicherung vor Störfällen wie Stromausfällen – parallel auf persistentem Speicher wie z.B. Solid-State-Disks gesichert. Der Zugriff auf den Hauptspeicher ist wesentlich schneller als die Verarbeitung von Daten in klassischen Systemen, welche die Daten primär auf der Festplatte ablegen und im Hauptspeicher lediglich temporäre Arbeitskopien vorhalten. Dadurch ergeben sich fundamentale Verbesserungen für die Datenhaltung und -auswertung im Unternehmen.

Historie

Klassische Datenbanken speichern den Datenbestand auf Festplatten in Blöcken ab. Die zuletzt benutzten Blöcke werden nach Möglichkeit im Hauptspeicher vorgehalten, so dass auf diesen vorgehaltenen Daten schnelle Abfragen möglich sind. Sollen Anfragen über den gesamten Datenbestand durchgeführt werden, muss dieser von der Festplatte gelesen werden, bevor er verarbeitet werden kann.

Entwicklung der Computertechnik

Über die letzten Jahrzehnte wurden Computer stetig schneller, was sich direkt auf die Ausführungsgeschwindigkeit auswirkte. Jedoch hat sich in den letzten Jahren gezeigt, dass sich einige Komponenten langsamer weiterentwickeln als andere. So ist die Rechenleistung moderner Prozessoren rasant gestiegen, während sich die Geschwindigkeit von Festplatten weitaus langsamer entwickelte. Somit wurde es immer aufwändiger, Daten von der Festplatte zu lesen und auszuwerten, was leicht zum Flaschenhals des Gesamtsystems wird.

Daneben stehen heute Server mit Hauptspeicherkapazitäten von bis zu 48 Terabyte zur Verfügung. Verglichen mit dem Wachstum der Hauptspeicherkapazitäten, haben sich allerdings die Latenz des Speicherzugriffes sowie die Speicherbandbreite nur geringfügig verbessert. Um die Auslastung der Bandbreite zu optimieren, nutzen moderne Prozessoren mehrstufige Cache-Architekturen, wodurch die Latenz des Speicherzugriffes verringert werden kann. Durch solche Architekturen lassen sich Bandbreitenbeschränkungen beim Speicherzugriff umgehen oder zumindest einschränken. Diese sogenannten Speicherhierarchien nutzen den Fakt aus, dass kleinere aber dafür wesentlich schnellere Speichertechnologien dichter an der CPU operieren. Dies führt jedoch dazu, dass die Geschwindigkeit der Zugriffe auf gespeicherte Daten von der Lokalität der Daten abhängig ist. Aufgrund dessen werden – insbesondere im In-Memory Data Management – Algorithmen und Datenstrukturen entsprechend optimiert, um Cache-Architekturen optimal auszunutzen.

Zeilen- und Spaltenorientierte Datenorganisation

Hauptspeicher wird im Englischen häufig mit dem Begriff DRAM bezeichnet, wobei diese Abkürzung für Dynamic Random Access Memory steht. Dieser Begriff suggeriert, dass die Zugriffsperformance auf alle Dateneinheiten im Hauptspeicher wahlfrei ist, also unabhängig von der zuvor angefragten Dateneinheit. Wie im vorherigen Abschnitt erläutert, ist dies bei heutigen Rechnern (die in der Mehrheit nach der Von-Neumann Architektur gebaut sind) nicht der Fall. Daher ist es erstrebenswert, häufig zusammen abgefragte Daten nah beieinander zu speichern. Dies kann durch eine spaltenorientierte Datenablage in vielen Fällen erreicht werden, da hier alle Einträge einer Spalte bzw. eines Attributes gemeinsam gespeichert werden. Bei modernen Unternehmensanwendungen oder analytischen Anwendungen dominieren genau solche Anfragen, bei denen einzelne Attribute aller Datensätze einer Tabelle gelesen werden (für eine ausführliche Erklärung siehe [Plattner 2014]). Diese Art der Datenablage steht im Gegensatz zu einer zeilenorientierten Datenorganisation, bei der die verschiedenen Attribute eines einzelnen Datensatzes zusammen abgelegt werden. Diese Art der Ablage ist besonders geeignet für schreibende Zugriffe kompletter Entitäten. Einige moderne Datenbanksysteme kombinieren beide Ablagesysteme, um für eine gegebene Arbeitslast die optimale Datenorganisation zu ermöglichen.

In-Memory Data Management

Beim In-Memory Data Management werden sämtliche Daten komprimiert und optimiert im Hauptspeicher einer oder mehrerer Server bereit gehalten. Alle Anfragen können somit direkt aus dem schnellen Hauptspeicher beantwortet werden.

Der Fokus liegt beim In-Memory Data Management auf der Optimierung des physischen Datenlayouts, welches hinsichtlich des tatsächlichen vorkommenden Zugriffsmusters angepasst wird. Diese Muster werden in der Regel durch gegebene transaktionale oder analytische Workloads vorab definiert. Um einen effizienten Zugriff sicherzustellen, muss die verfügbare Speicherbandbreite möglichst vollständig ausgenutzt werden und Daten sequentiell gelesen werden. Diese Anforderung ist analog zu festplattenbasierten Datenbanksystemen, da diese ebenfalls profitieren, wenn ganze Blöcke gelesen und komplett genutzt werden können, jedoch gelten andere Parameter, die dazu führen, dass andere Algorithmen und Datenstrukturen zum Einsatz kommen.

Anwendungsgebiete beim Enterprise Computing

Im Kontext von Unternehmensanwendungen hat die Datenhaltung der IT-Systeme einen großen Einfluss auf die Geschwindigkeit, mit der Unternehmensdaten verarbeitet werden können.

In-Memory Data Management ermöglicht eine neue Klasse von Anwendungen, die analytische Anfragen auf aktuellsten transaktionalen Daten ausführen können, ohne diese vorher durch einen Extract, Transform, Load (ETL)-Prozess in ein spezielles Analyseformat übertragen zu müssen. Dadurch, dass Daten nicht länger voraggregiert gespeichert werden, lassen sich Anwendungen erstellen, welche die Daten weitaus flexibler verarbeiten können.

Neue Anwendungsgebiete, wie die Auswertung von RFID-Sensordaten, Customer-Sentiment Analysen sowie operationales Reporting werden dadurch möglich.

Beispiel für operationales Reporting

Ein Beispiel, anhand dessen der Vorteil des IMDM für die Betriebsplanung gezeigt werden kann, ist der Available-to-Promise-Check (ATP), bei dem geprüft wird, ob einem Kunden eine Bestellung zugesichert werden kann. Dazu müssen Lagerbestände, Produktionsplanung, Lieferanten sowie andere Bestellungen berücksichtigt werden, was einen hohen Berechnungsaufwand auf dem gesamten Datenbestand bedeutet. Festplattenbasierte Datenbanksysteme kommen dort schnell an ihre Grenzen, da der Zugriff auf großen Datenmenge durch den Festplattenzugriff zu langsam ist, um Antworten in Echtzeit zu liefern.


Literatur

Plattner, H.: A Course in In-Memory Data Management, Second Edition, Springer 2014, ISBN: 978-3-642-55270-0

 

Hier weiterverbreiten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert