Was sind In-Memory-Datenbanken?
Eine In-Memory-Datenbank zeichnet sich dadurch aus, dass sie den Arbeitsspeicher eines Computers als Datenspeicher nutzt. Sie unterscheidet sich daher grundlegend von herkömmlichen Datenbanken, die Festplatten zum Speichern der Daten verwenden. Der Vorteil ist hier, dass der Arbeitsspeicher im Gegensatz zum Festplattenspeicher schnellere Zugriffsgeschwindigkeiten bietet.
Auch die Algorithmen für den Zugriff auf die Daten im Arbeitsspeicher sind einfacher. Einen Nachteil hat das Ganze jedoch: Arbeitsspeicher ist wesentlich teurer als Festplattenspeicher. In-Memory-Datenbanken kommen meistens zum Einsatz, wenn hohe Zugriffszeiten und Datentransferraten Priorität haben. Sie werden daher häufig für Telekommunikationsnetze oder Notrufsysteme eingesetzt.
Dauerhafte Speicherung
Daten, die sich im Arbeitsspeicher befinden, sind flüchtig, d.h. sie gehen bei Systemabstürzen verloren. Deshalb ist die Anforderung der dauerhaften Speicherung (Persistenz) ist nicht gegeben. Viele In-Memory-Datenbanken beinhalten daher Lösungen, um mehr oder weniger Persistenz bei der Datenspeicherung zu erreichen:- Schnappschuss-Dateien (Snapshots):
Sie speichern zu bestimmten Zeitpunkten den Zustand der Datenbank, z.B. in geplanten Abständen oder beim kontrollierten Abschalten der Datenbank.
Nachteil: Alle Änderungen seit dem letzten Schnappschuss (Snapshot) können verloren gehen. - Protokolldateien:
Protokolldateien enthalten kürzlich erfolgte Änderungen an der Datenbank. Mit Hilfe der Schnappschussdatei und der Protokolldatei lässt sich der letzte Zustand der Datenbank wiederherstellen. - Benutzung von nichtflüchtigem RAM-Speicher:
NVRAM (non-volatile RAM) ist ein nichtflüchtiger Datenspeicher, dessen Daten ohne externe Energieversorgung erhalten bleiben – beispielsweise stehen nach einem Neustart des Systems die Daten immer noch zur Verfügung. - Hochverfügbare In-Memory-Datenbanken:
Sie stellen die Persistenz der Daten sicher, indem sie die Daten zusätzlich auf eine herkömmliche Datenbank replizieren.
Hybride In-Memory-Datenbanken
Hybride In-Memory-Datenbanken können die Daten sowohl im Arbeitsspeicher als auch auf Festplatten speichern. Sie ermöglichen deshalb im Betrieb die geeignete Balance zwischen Leistung, Kosten und Persistenz.Software-Lösungen
Diverse Hersteller bieten sowohl kommerzielle als auch Open-Source-Implementierungen von In-Memory-Datenbanken als Software-Lösungen an. Dazu gehören beispielsweise:- Berkeley DB
- eXtremeDB (In-Memory-Datenbank mit Optionen für Cluster, SQL und High Availability)
- H2 (kann als reine In-Memory-Datenbank konfiguriert werden)
- HSQLDB (kann als reine In-Memory-Datenbank konfiguriert werden und stammt vom selben Entwickler wie H2)
- Microsoft SQL Server 2014 (Hekaton)
- MySQL (Cluster-Server für verteilte In-Memory-Datenbank)
- Oracle TimesTen
- SAP HANA
- SQLite (kann die Festplatten und den Hauptspeicher gemeinsam nutzen)
Diese Artikel der „Big Data Tech Series“ könnten Sie auch interessieren: