Zum Inhalt springen

Vor- und Nachteile einer In-Memory-Datenbank

Der leitende Ingenieur Jeff Parsons diskutiert die Vor- und Nachteile von In-Memory-Datenbanken. Jeff verwendet die ACID-Prinzipien als Kern für seinen Vergleich. Erfahren Sie auch, was Raima als In-Memory-Lösung für die Datenverwaltung bietet.

 

Transkripte

Ich möchte die Vorteile zusammen mit den Nachteilen dessen diskutieren, was wir „im Gedächtnis“ nennen Datenbanken“. Was ist der Unterschied zwischen einer In-Memory-Datenbank und dem einfachen Speichern von Daten in gemeinsam genutzten Speichersegmenten? Traditionell können Datenbanken durch die vier Attribute charakterisiert werden, auf die üblicherweise mit dem Akronym ACID Bezug genommen wird: Atomizität, Konsistenz, Isolation und Haltbarkeit. Sobald Sie aufhören, eine Datenbank beizubehalten, verlieren Sie an Haltbarkeit. Dies ist also, was mit einer In-Memory-Datenbank verloren geht. Abgesehen von Methoden zum Kopieren von Datenbankinhalten an einen anderen dauerhaften Speicherort kann eine speicherinterne Datenbank einem Datenverlust unterliegen, wenn etwas nicht mehr funktioniert.

Die restlichen Attribute; Atomizität, Konsistenz und Isolation unterscheiden eine In-Memory-Datenbank von einfachen Daten, die in einem gemeinsam genutzten Speicher gespeichert sind. Atomizität ist das Wort, das verwendet wird, um das Transaktionsverhalten zu beschreiben, bei dem alle Änderungen als Alles-oder-Nichts-Operation in die Datenbank übernommen werden. Isolation ist das Wort, das verwendet wird, um zu beschreiben, welche Transaktionsänderungen andere Prozesse sehen. Sie dürfen niemals Teiltransaktionen sehen. In seiner grundlegendsten Form erzwingt der gemeinsame Speicher keine Atomizität oder Isolation. Das ist in Ordnung, solange nur ein Prozess die Daten verwendet, aber dies macht den Zweck des gemeinsam genutzten Speichers zunichte.

Datenbankkonsistenz bedeutet, dass strukturelle Regeln und Beziehungen für alle Benutzer beibehalten werden. Die Durchsetzung der Datenbankkonsistenz erfordert die gemeinsame Nutzung gemeinsamer Code- und Datendefinitionen. Dies kann natürlich mit gemeinsam genutztem Speicher erfolgen, aber in einem Datenbanksystem ist die Code- und Datendefinition integriert und einsatzbereit. Unabhängig davon, ob Ihre Daten dauerhaft sind oder sich im Speicher befinden, benötigen Sie dennoch Datenbankfunktionen, wenn Ihre Daten gemeinsam genutzt werden oder kompliziert sind. Dies ist selbst nicht einfach.

Der Hauptgrund, eine Datenbank zu führen in Erinnerung ist Leistung. Das Lesen und Schreiben von Daten, die sich nur im Speicher befinden, ist schneller als Daten, die auf der Festplatte oder auf einem Flash-Laufwerk gespeichert sind. Der entsprechende Nachteil ist, dass alle Daten in den Speicher passen müssen. Dies wird zunehmend erschwinglicher, aber die Speichergrößen betragen immer noch mehrere Gigabyte, während die Festplattengröße mehrere Terabyte betragen kann. Es ist notwendig, ausreichend Speicher zu kaufen oder die Größe der Datenbank zu begrenzen. Wie implementiert Raima ein In-Memory-Datenbanksystem in RDM? Sie können eine gesamte Datenbank oder eine Auswahl von Tabellen in der Datenbank als im Speicher deklarieren. Das ist alles was du tun musst. Wir implementieren es über unseren Transaktionsdateiserver und unsere Laufzeitbibliothek.

Der Transaktionsdateiserver ist ein unabhängiger Prozess, der die Datenbankdateien steuert und die Atomizität und Isolation für alle Benutzer auf demselben oder anderen Computern aufrechterhält. Die Laufzeitbibliothek ist mit dem Anwendungscode verknüpft. Es schreibt und liest Datenbankseiten zum und vom TFS. Der Schlüssel ist, wenn eine Datenbank oder ein Teil einer Datenbank als speicherintern deklariert wird, verhalten sich nur das RDM-TFS und die Laufzeit unterschiedlich. Ihr Anwendungscode kann genau gleich bleiben. RDM hat mehrere Optionen für in Speicherdatenbanken.

Eine persistente Speicherdatenbank wird beim Öffnen vom Disk-Image geladen und Änderungen werden beim Schließen automatisch wieder gespeichert. Eine flüchtige Speicherdatenbank ist leer, wenn sie geöffnet ist, und alle Daten werden verworfen, wenn sie geschlossen wird. Der dritte Typ ist ein Read-on-Open, bei dem beim Öffnen automatisch Daten von einem Disk-Image geladen werden. Änderungen werden jedoch nur bei Bedarf geschrieben. Zusammenfassend lässt sich sagen, dass die Verwendung von RDM als In-Memory-Datenbank die Vorteile einer Transaktionssicherheit für mehrere Benutzer bietet, bei der eine Shared-Memory-Lösung viel Arbeit erfordert. Es bietet auch eine höhere Leistung als langlebige Lösungen.

Nachteile; Möglicher Datenverlust und Begrenzung der Datenbankgröße. Wenn dies in Ordnung ist, sollten Sie auf jeden Fall RDMs in der Speicherlösung verwenden.