- In-Memory-Datenbank
-
Eine In-Memory-Datenbank (IMDB) ist ein Datenbankmanagementsystem, das primär den Arbeitsspeicher eines Computers als Datenspeicher nutzt. Damit unterscheidet es sich von herkömmlichen Datenbankmanagementsystemen, welche dazu Festplattenlaufwerke verwenden.
Auf Grund wesentlich höherer Zugriffsgeschwindigkeiten auf den Arbeitsspeicher als auf Festplattenlaufwerke, und einfacherer Algorithmen beim Zugriff, sind In-Memory-Datenbanken wesentlich schneller und bieten eine besser vorhersagbare Leistung als auf Festplatten zugreifende Datenbankmanagementsysteme. Andererseits sind die Kosten von Arbeitsspeicher wesentlich höher als die von Festplattenlaufwerken, auch ist die Kapazität des Arbeitsspeichers üblicherweise wesentlich geringer. Letzteres kann durch Grid-Computing umgangen werden.
Anwendungen wie beispielsweise Telekommunikationsnetze oder Notrufsysteme, bei denen Zugriffsgeschwindigkeiten oder Datentransferraten kritisch sind, verwenden oft In-Memory-Datenbanken.[1]
Inhaltsverzeichnis
ACID
In-Memory-Datenbanken sind in ihrer einfachsten Form nicht ACID, da sie den dauerhaft Teil von ACID nicht unterstützen. In-Memory-Datenbanken speichern Daten in flüchtigen Arbeitsspeicher, dieser kann erfolgreich abgeschlossene Transaktion aber beispielsweise bei Systemabstürzen nicht dauerhaft halten.
Viele In-Memory-Datenbanken unterstützen den dauerhaft Teil von ACID über die folgenden Mechanismen:
- Snapshot Dateien speichern den Zustand der Datenbank zu bestimmten Zeitpunkten, beispielsweise zeitgesteuert oder beim kontrollierten Abschalten der Datenbank. Damit unterstützen Snapshot Dateien allerdings nur partielle Dauerhaftigkeit, da die neuesten Änderungen dabei unter Umständen nicht mitgespeichert werden.
- Transaktions Logs speichern Änderungen auf Dateien und ermöglichen somit die automatische Wiederherstellung der Datenbank.
- Non-Volatile Random-Access Memory, üblicherweise als Kombination eines herkömmlichen flüchtigen RAM-Speichers mit einem Energiespeicher, garantiert den Erhalt der Daten auch bei Neustart des Systems.
- Hochverfügbarkeit von In-Memory-Datenbanken stellt die Dauerhaftigkeit durch Replikation und Failover auf eine identische herkömmliche Datenbank sicher.
Einige In-Memory-Datenbanken unterstützen unterschiedliche Zusicherungen bezüglich der Dauerhaftigkeit für unterschiedliche Bereiche der Datenbank. Damit können beispielsweise leicht regenerierbare oder nach einem Systemabsturz unwichtige Daten mit geringeren Dauerhaftigkeitsanforderungen definiert werden.
Hybride In-Memory-Datenbanken
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
Es gibt eine Reihe von kommerziellen und Open Source Implementierungen von In-Memory-Datenbanken. Dazu gehören unter anderen:
- Apache Derby - kann als reine In-Memory-Datenbank konfiguriert werden
- HSQLDB - kann als reine In-Memory-Datenbank konfiguriert werden
- InfoZoom
- MySQL - kommt mit einem Cluster-Server für eine verteilte In-Memory-Datenbank
- Berkeley DB - kann als reine In-Memory-Datenbank konfiguriert werden
- SQLite - kann Memory und Festplatten gemeinsam nutzen
- SAP HANA database - Hauptspeicherdatenbank der HANA Appliance
- Oracle TimesTen
- IBM TM1 - OLAP Datenbank, eines der erste Produkte in diesem Bereich, seit 1984 auf dem Markt
Siehe auch
- Grid-Computing - Möglichkeit der Verteilung von In-Memory-Datenbanken
- NoSQL - Weitere Alternative zu Datenbankmanagementsystemen
Literatur
- 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
- In-Memory Database Systems Questions and Answers
- H-store Project
- Martin Fowler: InMemoryTestDatabase. 22. November 2005, abgerufen am 4. Juli 2010 (englisch).
- Sprint Project
- Main Memory Database Systems: An Overview
- SAP HANA Appliance
Einzelnachweise
- ↑ TeleCommunication 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, abgerufen am 3. Juli 2010 (englisch).
- ↑ Bernhard Cole: Hybrid embedded database merges on-disk and in-memory data management. Embedded.com, 2. Mai 2007, abgerufen am 6. Juli 2010 (englisch).
- ↑ Steve Graves: Hybrid Data Management Gets Traction in Set-Top Boxes. Embedded.com, 28. Juli 2008, abgerufen am 6. Juli 2010 (englisch).
Wikimedia Foundation.