Eine In-Memory-Datenbank ist eine speziell entwickelte Datenbank, die hauptsächlich auf internen Speicher für die Datenspeicherung angewiesen ist. Es ermöglicht minimale Reaktionszeiten, da kein Zugriff auf Standard-Festplattenlaufwerke (SSDs) erforderlich ist. In-Memory-Datenbanken eignen sich ideal für Anwendungen, die Reaktionszeiten im Mikrosekundenbereich erfordern oder hohe Datenverkehrsspitzen aufweisen, wie z. B. Bestenlisten für Spiele, Sitzungsspeicher und Datenanalysen in Echtzeit. Die Begriffe Hauptspeicherdatenbank (MMDB), In-Memory-Datenbanksystem (IMDS) und Echtzeit-Datenbanksystem (RTDB) beziehen sich auch auf In-Memory-Datenbanken.

Was sind die Vorteile von In-Memory-Datenbanken

Eine In-Memory-Datenbank bietet mehrere Vorteile, auf die wir im Folgenden näher eingehen.

Niedrige Latenz, bietet Antworten in Echtzeit

Die Latenz ist die Verzögerung zwischen der Anfrage zum Zugriff auf Daten und der Antwort der Anwendung. In-Memory-Datenbanken bieten unabhängig vom Umfang vorhersehbare niedrige Latenzen. Sie bieten eine Leselatenz im Mikrosekundenbereich, eine Schreiblatenz im einstelligen Millisekundenbereich und einen hohen Durchsatz.

Infolgedessen ermöglicht In-Memory-Speicher Unternehmen, datenbasierte Entscheidungen in Echtzeit zu treffen. Sie können Anwendungen entwerfen, die Daten verarbeiten und auf Änderungen reagieren, bevor es zu spät ist. Beispielsweise kann die speicherinterne Berechnung von Sensordaten von selbstfahrenden Fahrzeugen die gewünschte Reaktionszeit für Notbremsungen in Sekundenbruchteilen liefern.

Hoher Durchsatz

In-Memory-Datenbanken sind für ihren hohen Durchsatz bekannt. Der Durchsatz bezieht sich auf die Anzahl der Lese- (Lesedurchsatz) oder Schreibvorgänge (Schreibdurchsatz) über einen bestimmten Zeitraum. Beispiele hierfür sind Byte/Minute oder Transaktionen pro Sekunde.

Hohe Skalierbarkeit

Sie können Ihre In-Memory-Datenbank skalieren, um schwankenden Anwendungsanforderungen gerecht zu werden. Sowohl Schreib- als auch Leseskalierung ist möglich, ohne die Leistung zu beeinträchtigen. Die Datenbank bleibt online und unterstützt Lese- und Schreibvorgänge während der Größenänderung.

Was sind die Anwendungsfälle von In-Memory-Datenbanken

In-Memory-Datenbanken sind eine gute Wahl für die Banken-, Telekommunikations-, Spiele- und mobile Werbebranche. Im Folgenden finden Sie einige Beispiele für Anwendungsfälle von In-Memory-Datenbanken.

Caching

Ein Cache ist eine Hochgeschwindigkeitsdatenspeicherschicht, die eine Teilmenge von typischerweise transienten Daten speichert. Zweck eines Cache sind schnellere Datenabrufzeiten durch Vermeidung eines Zugriffs auf die zugrunde liegende langsamere Speicherebene. Das bedeutet, dass zukünftige Anfragen für diese Daten schneller bearbeitet werden, als dies durch den Zugriff auf den primären Speicherort der Daten möglich ist.

Mit Caching können bereits abgerufene oder berechnete Daten effizient wiederverwendet werden. Der In-Memory-Datenspeicher eignet sich gut für einen schnelleren Zugriff auf zwischengespeicherte Daten. Beim Caching wird die Haltbarkeit gegen die Reaktionszeit eingetauscht. Die Reaktionszeit ist schneller, da Daten aus dem Speicher abgerufen werden, aber das Zwischenspeichern schützt nicht vor dem Verlust von Daten im Speicher. Aus diesem Grund wird Caching häufig in Kombination mit einer festplattenbasierten, dauerhaften Datenbank verwendet.

Bieten in Echtzeit

Das Bieten in Echtzeit bezieht sich auf den Kauf und Verkauf von Online-Anzeigenimpressionen. Normalerweise muss das Gebot abgegeben werden, während der Benutzer eine Webseite in 100-120 Millisekunden und manchmal auch in nur 50 Millisekunden lädt. Während dieses Zeitraums fordern Echtzeit-Gebotsanwendungen Angebote von allen Käufern für den Werbespot an, wählen anhand mehrerer Kriterien ein Höchstgebot aus, zeigen das Angebot an und sammeln Informationen nach der Anzeigenschaltung. In-Memory-Datenbanken eignen sich ideal für die Aufnahme, Verarbeitung und Analyse von Echtzeitdaten mit einer Latenz von unter einer Millisekunde.

Spielebestenlisten

Eine relative Gaming-Bestenliste zeigt die Position eines Spielers im Vergleich zu anderen Spielern mit ähnlichem Rang. Diese Bestenlisten können dazu beitragen, das Engagement der Spieler zu stärken und zu verhindern, dass Spieler im Vergleich zu Top-Spielern demotiviert werden. In-Memory-Datenbanken können schnell Sortierergebnisse liefern und die Bestenliste für ein Spiel mit Millionen von Spielern in Echtzeit aktualisieren.

Wie funktioniert ein In-Memory-Cache

Ein In-Memory-Cache ist zum Speichern von Daten auf Direktzugriffsspeicher (RAM) angewiesen. Die Technologie speichert Datentabellen direkt im RAM statt auf externen Laufwerken. Spezialisierte Datenstrukturen ermöglichen die Indizierung Ihrer Datensätze. Die Indizes dienen als direkte Zeiger auf bestimmte Zeilen und Spalten. Die tatsächlichen physikalischen Daten sind jedoch komprimiert und haben ein nicht relationales Format. Wenn Sie eine Zugriffsanforderung stellen, navigiert die Datenbank mithilfe des Index zum exakten Datenwert. Gespeicherte Daten sind immer in einem direkt verwendbaren Format verfügbar.

Dinge wie 64-Bit-Computing, niedrigere RAM-Preise und Mehrkernserver haben dazu geführt, dass In-Memory-Speicher immer üblicher geworden sind. Darüber hinaus ermöglichen Cloud-basierte Datenspeicher, Ihre RAM-Ressourcen nach Bedarf nach oben oder unten zu skalieren, wodurch die In-Memory-Technologie flexibler und zugänglicher wird.

Unterschied zwischen In-Memory-Cache und herkömmlichen festplattenbasierten Datenbanken

Eine herkömmliche Datenbank speichert alle Daten auf externen Festplatten oder Solid-State-Laufwerken. Jeder einzelne Lese- und Schreibvorgang erfordert Festplattenzugriff. Umgekehrt priorisiert der In-Memory-Cache die Datenpersistenz nicht. Beispielsweise können Caches Daten nur in regelmäßigen Abständen auf externen Speichermedien speichern. Im Folgenden haben wir die Unterschiede zwischen In-Memory-Caches und herkömmlichen Datenbanken zusammengefasst.

Was ist der Unterschied zwischen einem In-Memory-Cache und einer In-Memory-Datenbank

In-Memory-Caches bieten eine bessere Leistung, da Schreibvorgänge nicht dauerhaft gespeichert werden, wodurch die zusätzliche Zeit entfällt, die für das Speichern von Daten benötigt wird. Eine In-Memory-Datenbank speichert Schreibvorgänge, sodass Datenänderungen dauerhaft sind. Diese Haltbarkeit geht zu Lasten einer geringeren Leistung beim Schreiben. In-Memory-Datenbanken bieten jedoch immer noch eine bessere Leistung als festplattenbasierte Datenbanken. In Bezug auf die Leistung befinden sie sich zwischen einem In-Memory-Cache und einer festplattenbasierten Datenbank.

Was sind die Einschränkungen von In-Memory-Caches

Da alle Daten ausschließlich im Arbeitsspeicher gespeichert und verwaltet werden, besteht bei In-Memory-Caches die Gefahr, dass Daten bei einem Prozess- oder Serverausfall verloren gehen. Um die Haltbarkeit zu verbessern, kann ein In-Memory-Cache Daten in regelmäßigen Abständen auf Festplattendatenbanken speichern. Im Folgenden gehen wir auf einige Mechanismen zur Verbesserung der Haltbarkeit ein.

Snapshot-Dateien

Snapshot-Dateien zeichnen den Datenbankstatus zu einem bestimmten Zeitpunkt auf. Der In-Memory-Cache generiert regelmäßig oder während eines kontrollierten Shutdowns Snapshots. Während das Erstellen von Snapshots die Haltbarkeit bis zu einem gewissen Grad verbessert, kann es dennoch zu Datenverlusten zwischen Snapshots kommen.

Protokollierung von Transaktionen

Die Transaktionsprotokollierung zeichnet Änderungen an der Datenbank in einer externen Journaldatei auf. Die Protokollierung ist unabhängig vom Lesen/Schreiben von Daten und beeinträchtigt die Leistung nicht. Die Journaldatei erleichtert die automatische Wiederherstellung eines In-Memory-Caches.

Replikation

Einige In-Memory-Caches sind auf Redundanz angewiesen, um eine hohe Verfügbarkeit zu gewährleisten. Sie verwalten mehrere Kopien derselben Daten in verschiedenen Speichermodulen. Ein Modulausfall führt zu einem automatischen Failover auf die doppelte Sicherungskopie. Dies mindert das Risiko eines Datenverlusts bei einem Cache.

Wie kann AWS Ihre In-Memory-Cache- und Datenbankanforderungen unterstützen?

AWS bietet verschiedene vollständig verwaltete In-Memory-Cache- und Datenbankdienste für Ihre spezifischen Anforderungen.

In-Memory-Datenbank

Amazon MemoryDB für Redis

Amazon MemoryDB für Redis ist ein zuverlässiger In-Memory-Datenbank-Service für ultraschnelle Leistung. Es ist kompatibel mit Redis, einem beliebten Open-Source-Datenspeicher. Auf diese Weise können Kunden schnell Anwendungen mit denselben flexiblen und benutzerfreundlichen Redis-Datenstrukturen, APIs und Befehlen erstellen, die sie bereits heute verwenden. MemoryDB speichert auch Ihre Daten dauerhaft über mehrere Availability Zones (AZs) hinweg und verwendet ein Multi-AZ-Transaktionsprotokoll, um schnelles Failover, Datenbank-Wiederherstellung und Knoten-Neustarts zu ermöglichen.

In-Memory-Caches

Amazon ElastiCache für Redis

Amazon ElastiCache für Redis ist ein superschneller In-Memory-Caching-Service, der eine Latenz von Mikrosekunden ermöglicht, um Echtzeitanwendungen im Internet zu unterstützen. Entwickler können ElastiCache für Redis als In-Memory-Cache oder für Anwendungsfälle verwenden, die keine hohe Datenbeständigkeit erfordern. Die ElastiCache-für-Redis-Clusterkonfiguration unterstützt Kunden dabei, Redis-Workloads mit bis zu 6,1 TB In-Memory-Kapazität in einem einzigen Cluster auszuführen. ElastiCache für Redis ermöglicht es auch, Shards zu einem Cluster hinzuzufügen, der gerade ausgeführt wird, bzw. daraus zu entfernen. Sie können Ihre Redis-Cluster-Workloads dynamisch skalieren, um sich an Änderungen der Nachfrage anzupassen.

Amazon ElastiCache for Memcached

Amazon ElastiCache für Memcached ist ein Memcached-kompatibler In-Memory-Caching-Service für Schlüsselwerte. Er bietet die gleiche hohe Leistung, Benutzerfreundlichkeit und Einfachheit von Memcached. ElastiCache für Memcached ist vollständig verwaltet, skalierbar und sicher. Der Service eignet sich somit hervorragend für Anwendungsfälle, bei denen sich häufig abgefragte Daten im Hauptspeicher befinden müssen.

Beginnen Sie mit In-Memory-Caches oder Datenbanken in AWS, indem Sie noch heute ein kostenloses Konto erstellen!

Einführung in Amazon MemoryDB für Redis
Einführung in Amazon ElastiCache für Redis