Write-Back Cache

Transbase setzt einen sogenannten Write-Back Cache ein, der zwar technisch anspruchsvoller ist, jedoch schneller als der Write-Through Cache arbeitet. Die Größe des Caches kann vom Anwender zu Beginn frei festgelegt und später verändert werden, die Gesamtgröße ist nur durch die Größe des Hauptspeichers beschränkt. Zusätzlich kann der Cache in mehrere Partitionen aufgeteilt werden, um die Performanz bei parallelen Zugriffen zu erhöhen. 

Mit diesem integrierten Cache lassen sich physischer IO (Input/Output) auf den externen Speicher weitgehend vermeiden und gleichzeitig die Transaktionseigenschaften der Datenbank sicherstellen. Die genaue Funktionsweise wird anhand der folgenden Skizze erläutert. 

 

Auf der linken Seite sind die Clients abgebildet und deren SQL-Befehle an Transbase. Werden Daten in der Datenbank vom Nutzer verändert, schreibt Transbase diese Veränderungen in den Log im Hauptspeicher. Dieser wächst kontinuierlich an und wird in kurzen Zeitabständen in die Log-Datei auf den externen Speicher geschrieben. 

Die zu verändernden Datensätze bleiben im Hauptspeicher und müssen nicht sofort auf die physische Datenbank geschrieben werden. Dies trägt dazu bei, den physischen IO auf die Datenbank zu minimieren. Insbesondere für Flashspeicher wird dadurch die Lebensdauer deutlich erhöht. (Wear Leveling) Je größer der Cache konfiguriert ist, desto ausgeprägter ist dieser Effekt. 

Erfolgt ein FLUSH-Befehl, zum Beispiel bei einem Shut-down, so werden alle veränderten Datensätze im Hauptspeicher auf die externe Datenbank geschrieben. Ist dies erfolgreich abgeschlossen, liegt ein konsistenter Zustand in der Datenbank vor, und die Logdatei könnte gelöscht werden. 

Wird der Cache größer als die Datenbank konfiguriert, wird Transbase praktisch zum Hauptspeicherdatensystem. In diesem Fall werden Änderungen trotzdem geloggt, so dass Datensicherheit und Replikation gewährleistet sind. 

Der Write-Back-Cache bietet außerdem die Möglichkeit, Datenbanken im laufenden Betrieb inkrementell zu sichern oder über TCP/IP zu replizieren. Dies ermöglicht sowohl den Betrieb von Backup-Servern, als auch die breitgestreute Replikation von Datenbanken. Mehr dazu erfahren Sie unter Replikation

Aus Gründen der Datensicherheit und der Geschwindigkeit wird empfohlen, den Log auf ein separates, schnelles Speichermedium zu legen.