In-Memory-Datenbank

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Eine In-Memory-Datenbank (IMDB) oder eine hauptspeicherresidente Datenbank ist ein Datenbankmanagementsystem, das den Arbeitsspeicher eines Computers als Datenspeicher nutzt. Damit unterscheidet es sich von herkömmlichen Datenbankmanagementsystemen, die dazu Festplattenlaufwerke verwenden.

Der Arbeitsspeicher eines Rechners bietet wesentlich höhere Zugriffsgeschwindigkeiten als Festplattenlaufwerke und die Algorithmen für den Zugriff sind einfacher. Deshalb sind In-Memory-Datenbanken wesentlich schneller und ihre Zugriffszeiten sind besser vorhersagbar als die von auf Festplatten zugreifenden Datenbankmanagementsystemen. Jedoch ist Arbeitsspeicher sehr viel teurer als Festplattenspeicher, der einzelne Rechner hat deshalb üblicherweise sehr viel weniger davon. Wenn eine Datenbank hohe Speicherkapazität braucht, kann jedoch durch Grid-Computing diese Schranke für In-Memory-Datenbanken überwunden werden.

Anwendungen verwenden oft In-Memory-Datenbanken, wenn es bei ihnen auf hohe Zugriffsgeschwindigkeiten oder Datentransferraten ankommt. Beispiel hierfür sind Telekommunikationsnetze oder Notrufsysteme.[1]

Nicht-Persistenz[Bearbeiten]

Da In-Memory-Datenbanken ihre Daten in flüchtigem Arbeitsspeicher speichern, der sie bei Systemabstürzen verliert, erfüllen sie nicht ohne Weiteres die Anforderung der dauerhaften Speicherung (Persistenz) erfolgreich abgeschlossener Transaktionen.

Viele In-Memory-Datenbanken helfen dem ab und erreichen weniger oder mehr Persistenz bei der Datenspeicherung mit folgenden Methoden:

  • Schnappschuss-Dateien speichern den Zustand der Datenbank zu bestimmten Zeitpunkten, beispielsweise in geplanten Abständen oder beim kontrollierten Abschalten der Datenbank. Alle Veränderungen seit dem jüngsten Schnappschuss können bei diesem Verfahren allerdings nach wie vor verloren gehen.
  • In zusätzlichen Protokolldateien werden kürzlich erfolgte Änderungen an der Datenbank ebenfalls niedergelegt. Aus dem jüngsten Schnappschuss und dem Protokoll der inzwischen getätigten Änderungen kann der letzte gültige Zustand der Datenbank automatisch wiederhergestellt werden.
  • Benutzung von nichtflüchtigem RAM-Speicher, üblicherweise realisiert als Kombination eines herkömmlichen flüchtigen RAM-Speichers mit einem Energiespeicher, garantiert den Erhalt der Daten auch bei Neustart des Systems.
  • Hochverfügbare In-Memory-Datenbanken stellen die Dauerhaftigkeit durch Replikation und bei Ausfall Wechsel (Failover) auf eine herkömmliche Datenbank sicher.

Einige In-Memory-Datenbanken können nach Wunsch Teile des Datenbestandes in mehr oder weniger starkem Maße persistent machen. Man kann sich damit den Aufwand für die Sicherung von Daten ersparen, die leicht wiederzuerzeugen oder die nach einem Systemabsturz ohnehin nutzlos sind.

Hybride In-Memory-Datenbanken[Bearbeiten]

Hybride In-Memory-Datenbanken sind Datenbanksysteme, welche Daten sowohl im Hauptspeicher, als auch auf Festplatten speichern können. Diese ermöglichen es, im Betrieb die geeignete Balance zwischen Leistung, Kosten, Dauerhaftigkeit und Formfaktor zu erreichen.[2][3]

Produkte[Bearbeiten]

Es gibt eine Reihe von kommerziellen und Open-Source-Implementierungen von hauptspeicherresidenten Datenbanken. Dazu gehören unter anderem (alphabetisch geordnet):

  • Apache Derby – kann als reine In-Memory-Datenbank konfiguriert werden
  • Altibase – Hybrid DBMS
  • Berkeley DB – kann als reine In-Memory-Datenbank konfiguriert werden
  • EXASolution – In-Memory-zentriertes Datenbanksystem von EXASOL für Real Time Data-Warehousing (Technologieführer per TPC-H-Benchmark vor Oracle, in allen Kategorien[4])
  • eXtremeDB – In-Memory-Datenbank mit Optionen für High Availability, Cluster und SQL.
  • H2 – Java Datenbank, neues Projekt vom HSQLDB Initiator, kann als reine In-Memory-Datenbank konfiguriert werden
  • HSQLDB – kann als reine In-Memory-Datenbank konfiguriert werden
  • IBM Informix Warehouse Accelerator [5]
  • IBM solidDB - Relationales In-Memory DBMS [6]
  • IBM Cognos TM1OLAP Datenbank, eines der ersten Produkte in diesem Bereich, seit 1984 auf dem Markt
  • InfoZoom
  • LucaNet - Spezial-Software für Business Intelligence im Rechnungswesen
  • Microsoft SQL Server 2014 (Hekaton)
  • MySQL – kommt mit einem Cluster-Server für eine verteilte In-Memory-Datenbank
  • Oracle TimesTen
  • Redis – ein Schlüssel-Wert-System[7]
  • SAP HANA – Hauptspeicherdatenbank der HANA Appliance
  • SQLite – kann Hauptspeicher und Festplatten gemeinsam nutzen
  • TIBCO ActiveSpaces – In Memory Grid Datenbank

Siehe auch[Bearbeiten]

  • Grid-Computing - Möglichkeit der Verteilung von In-Memory-Datenbanken
  • NoSQL - Weitere Alternative zu Datenbankmanagementsystemen

Literatur[Bearbeiten]

  •  Jack Belzer: Very Large Data Base Systems to Zero-Memory and Markov Information Source. In: Albert G. Holzman (Hrsg.): Encyclopedia of Computer Science and Technology. 14, Marcel Dekker Inc, Juni 1980, ISBN 978-0824722142.
  •  Hasso Plattner, Alexander Zeier: In-Memory Data Management: An Inflection Point for Enterprise Applications. Springer; 1st Edition, Juni 2011, ISBN 978-3642193620.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatTeleCommunication Systems Signs up as a Reseller of TimesTen; Mobile Operators and Carriers Gain Real-Time Platform for Location-Based Services. Business Wire, 24. Juni 2002, archiviert vom Original am 8. Juli 2012, abgerufen am 3. Juli 2010 (englisch).
  2. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatBernhard Cole: Hybrid embedded database merges on-disk and in-memory data management. Embedded.com, 2. Mai 2007, abgerufen am 6. Juli 2010 (englisch).
  3. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatSteve Graves: Hybrid Data Management Gets Traction in Set-Top Boxes. Embedded.com, 28. Juli 2008, abgerufen am 6. Juli 2010 (englisch).
  4. http://www.tpc.org/tpch/default.asp
  5. IBM Informix Warehouse Accelerator. IBM.com, abgerufen am 30. Juni 2012.
  6. IBM solidDB Divestiture. IBM.com, abgerufen am 16. August 2014.
  7. DB-Engines Ranking von Key-Value Stores