In-Memory-Datenbank

Zusammenfassung

 

Begriff

Unter In-Memory-Technologie (auch In-Memory-Computing) versteht man im Allgemeinen das Speichern und Verwalten der Daten im Hauptspeicher. Bei traditionellen Datenbankensystemen werden die Daten ausschließlich auf der Festplatte gespeichert und bei Abfragen von dort gelesen. Dies bedeutet, dass nur ein Bruchteil der Daten im Hauptspeicher verwaltet wird. Mit dem Einsatz der In-Memory-Technologie werden die gesamten Daten entweder direkt im Hauptspeicher gehalten oder beim Programmstart von der Festplatte komplett in den Hauptspeicher geladen. Somit können lesende Zugriffe weitaus schneller erfolgen als bei traditionellen Datenbanksystemen, da keine I/O-Zugriffe (Input/Output) auf die Festplatte erfolgen.

1 Grundlagen der In-Memory-Technologie

Daten im Hauptspeicher speichern und verwalten

Unter In-Memory-Technologie (auch In-Memory-Computing) versteht man im Allgemeinen das Speichern und Verwalten der Daten im Hauptspeicher. Bei traditionellen Datenbankensystemen werden die Daten ausschließlich auf der Festplatte gespeichert und bei Abfragen von dort gelesen. Dies bedeutet, dass nur ein Bruchteil der Daten im Hauptspeicher verwaltet wird. Mit dem Einsatz der In-Memory-Technologie werden die gesamten Daten entweder direkt im Hauptspeicher gehalten oder beim Pro­grammstart von der Festplatte komplett in den Hauptspeicher geladen. Somit können lesende Zugriffe weitaus schneller erfolgen als bei traditionellen Datenbanksystemen, da keine I/O-Zugriffe (In­put/Output) auf die Festplatte erfolgen.

Die traditionellen relationalen Datenbanken (RDBMS) unterscheiden sich in vielen Aspekten von In-Memory-Lösungen. So verwenden diese Datenbanksysteme eine "Disk" als Datenspeicher. Für eine Datenverarbeitung werden die Daten von der Disk in den Hauptspeicher geladen. Diese Operationen stellen meist einen Engpass im System dar. Aus diesem Grund sind die RDBMS bei der Ana­lyse großer Datenmengen häufig nicht in der Lage, benötigte Abfragen schnell durchzuführen. Die Zugriffslücke zwischen Hauptspeicher und Festplatte ist zwar weggefallen, aber es besteht immer noch eine Barriere zwischen den Prozessoren mit ihrem lokalen CPU-Cache und dem Hauptspeicher (s. Abb. 1). Diese Blockade wird als "Memory Wall" bezeichnet.

Abb. 1: Technische Architektur der RDBMS

Beschleunigung der Datenverarbeitung

Die Verwendung eines großen Hauptspeichers im Rahmen der In-Memory-Technologie bietet gegenüber der Festplatte große Performance-Vorteile hinsichtlich der Zugriffszeiten und Datentransfer. Der Hauptspeicher ist aktuell der schnellste und geeignete Speichertyp, der sehr große Datenmengen halten kann. Daten im Hauptspeicher können ca. 100.000 Mal schneller verarbeitet werden als auf der Festplatte.

Jedoch sind genügend verfügbare Hauptspeicherkapazitäten und die Bereitstellung schneller Prozessoren nicht alleine ausreichend um die Datenverarbeitung so zu beschleunigen, dass Anwender tatsächlich Informationen in Echtzeit erhalten. Um den Datentransfer zu verkürzen, empfiehlt es sich zusätzlich, die Datenbewegung sowohl innerhalb der Datenbank als auch zwischen der Datenbank und der Anwendung durch Nutzung einer spaltenorientierten Speicherung und der Verwendung von Kompressionsmethoden zu minimieren. Weitere Geschwindigkeitsvorteile können durch Techniken wie Parallelisierung und Partition erreicht werden. Diese Aspekte sollen im Folgenden näher untersucht werden.

2 Datenhaltung im Hauptspeicher

SavePoints zur Datensicherung

Durch die Haltung der Daten im Hauptspeicher entstehen zwar große Performance-Vorteile hinsichtlich der Zugriffszeiten, jedoch besteht eine erhöhte Gefahr für einen möglichen Datenverlust bei einem Stromausfall. Daher ist eine Datenpersistenz sicherzustellen, die neben Atomarität und Konsistenz ein bedeutsames Kriterium für den Einsatz einer In-Memory-Technologie darstellt. So kann der Hauptspeicher allein die Datenpersistenz in einer In-Memory-Datenbank (IMDB) nicht gewährleisten. Im Fall eines Energieverlustes würden die gesamten Dateninhalte im Hauptspeicher verloren gehen. Um die Datenpersistenz zu garantieren ist zusätzlich zum Hauptspeicher ein nichtflüchtiger Speicher, wie z. B. eine Festplatte, notwendig.

Für die Gewährleistung der Datensicherung in einer IMDB können SavePoints (Snapshots) und Logs genutzt werden. So kann der aktuelle Zustand der Datenbank im SavePoint gespeichert und in regelmäßigen Zeitabständen in den nichtflüchtigen Speicher geschrieben werden. Sämtliche zwischenzeitlichen Änderungen werden als Logs in einer Logdatei im nichtflüchtigen Hauptspeicher gespeichert. Nach einem Stromausfall kann durch den SavePoint der aktuellste Zustand der Datenbank wiederhergestellt werden. Alle Änderungen, die zwischen dem Zeitpunkt des Stromausfalls und der letzten SavePoint-Sicherung entstanden sind, werden in einer Logdatei gesichert und können somit bei Bedarf wiederhergestellt werden. Abb. 2 verdeutlicht diesen Sachverhalt.

Abb. 2: Beispiele für Logs und Savepoints

Andere mögliche Techniken zur Lösung dieses Problems sind bspw. die Nutzung von Batterien bzw. Akkus bei einem S...

Das ist nur ein Ausschnitt aus dem Produkt Finance Office Professional. Sie wollen mehr? Dann testen Sie hier live & unverbindlich Finance Office Professional 30 Minuten lang und lesen Sie den gesamten Inhalt.


Meistgelesene beiträge