Definition: Differential Merge

Die Updates aus dem Differential Buffer werden mithilfe eines Differential Merges in die Hauptspeicherstruktur (Main Store) der Datenbank überführt.

Je größer der Differential Buffer, desto teurer ist der Merge. Daher werden die Daten regelmäßig zurück in den Main Store überführt. Beispielsweise, wenn die Anzahl der Elemente in dem Differential Buffer einen festgelegten Grenzwert überschreitet oder wenn bestimmte Queries länger dauern als ein festgelegter Grenzwert.

Eine Methode zur Durchführung ist der Online Merge.

Definition: Online Merge

Als Online Merge bezeichnen wir im Kontext von Datenbanken eine Methode zur Überführung eines Differential Buffers in die Hauptspeicherstruktur (Main Store).

Hierbei wird eine Duplikat des Main Stores erstellt, dieses wird auf Basis des Differential Buffers aktualisiert und anschließend wird der alte Main Store durch das aktualisierte Duplikat ersetzt.

Ein offensichtlicher Nachteil ist der hohe Speicherbedarf der Methode. Ein Vorteil ist, dass es nur zu einer sehr kurzen Downtime der Datenbank kommt.

Der Online Merge wird in drei Teilschritten vollzogen:

  1. Vorbereitung:
  • Ungültige Datensätze (valid=) werden in eine History Partition verschoben, die bspw. auf einer HDD oder SSD persistiert wird.
  1. Attribut Merge:
  • Da die Kompressions-Codierungen zwischen Main Store und Differential Buffer unterschiedlich sind, wird zunächst ein Mapping zwischen beiden Codierungen erstellt.
  • Anschließend werden die beiden Codierungen zusammengeführt und in den neuen Main Store geschrieben.
  1. Commit:
  • Der alte Main Store wird kurzzeitig für Änderungen gesperrt und es wird gewartet, bis alle noch laufenden Transaktionen abgeschlossen sind.
  • Anschließend wird der alte Main Store durch den neuen ersetzt und auch der alte Differential Buffer wird zurückgesetzt.
  • Der doppelte Speicherbedarf wird wieder freigegeben.