Was unterscheidet In-Memory Datagrids von In-Memory-Datenbanken?

Was sind In-Memory-Datenbanken?

In-Memory-Datenbanken wie MemSQL oder VoltDB sind wie normale Datenbanken, die jedoch alle ihre Daten (verteilt auf mehrere Server) im RAM halten, um einen schnellen Zugriff zu ermöglichen. Obwohl sie teilweise über Speicherfähigkeiten verfügen, sind sie im Grunde genommen reine Memory-Architekturen. Sie werden als Datenbanken bezeichnet, weil man sie mit SQL und Standarddatenbanktreibern steuert. Nutzer können Schemata erstellen, Abfragen stellen und DDL- oder DML-Anweisungen wie Inserts, Updates und Löschvorgänge verwenden.

Eine In-Memory-Datenbank (IMDB) eignet sich für neue oder neu strukturierte Anwendungen. Es handelt sich um eine vollständige und eigenständige Datenbank, die API-Datenverarbeitung wie ANSI-99 SQL, Key-Value oder Machine Learning unterstützt. Der Vorteil einer In-Memory-Datenbank gegenüber einem In-Memory DataGrid ist die Reduktion der Strukturen von drei Schichten (Anwendung, In-Memory und Daten) auf zwei. Die Systeme haben einen sehr hohen Durchsatz, da auf die Daten im RAM zugegriffen wird. Sie zeichnen sich zudem durch eine gute Skalierbarkeit aus, da sie ihre Daten auf mehrere Server verteilen.

Bei einer In-Memory-Datenbank ist SQL jedoch die einzige Möglichkeit, mit dem System zu kommunizieren, und SQL passt nicht für alle Anwendungsfälle. Manchmal ist es wichtig, Berechnungen direkt mit den Daten durchführen zu können, die sich auf einem bestimmten Server befinden, um die Leistung zu optimieren. Apache Ignite und GridGain als voll funktionsfähige In-Memory-Computing-Plattformen unterstützen ANSI SQL-99 mitsamt DML- und DDL-Support.

Beispielhafte Architektur einer In-Memory-Datenbank

Der Nachteil ist, dass sich In-Memory-Datenbanken nicht für bestehende Anwendungen verwenden lassen, ohne Teile der Daten aus einer Datenbank zu entfernen und neu einzufügen (Rip & Replace). Die meisten Unternehmen haben eine Menge Infrastrukturcode um ihre bestehenden Datenbanken herum, sodass die Migration auf eine neue Datenbank einen enormen Aufwand erfordert. Aus diesem Grund sind In-Memory-Datenbanken am besten für Unternehmen geeignet, die entweder eine erste Datenbank auswählen oder ihre bestehende Datenbank vollständig ersetzen müssen.

Da eine In-Memory-Datenbank als Aufzeichnungssystem dient, muss zusätzlich die Umsetzung einer Strategie für den Schutz der Daten im Fall eines Ausfalls umfassen. Die Strategie könnte ähnlich zu der beständigen Speicherkapazität von In-Memory DataGrids sein, oder es könnte die Nutzung von nichtflüchtigem RAM, also RAM, dass seine Daten speichern kann, auch wenn der Speicherchip keinen Strom mehr erhält, enthalten.