Force und Steal (Datenbanken)
Es geht um die Verwaltung der Pages der Datenbank die im Hauptspeicher geladen sind. Der Hauptrspeicher ist in der Regel kleiner als die Datenbank groß sein darf. Daher muss immer verwaltet werden, welche Pages gerade geladen sind und welche wieder zurückgeschrieben werden, um neue laden zu können.
Für mögliche Strategien gibt es zwei Achsen zur Klassifizierung:
Force #
-
force: Veränderte Pages werden zum Transaktionsende auf den Hintergundspeicher geschrieben.
-
¬force: Geänderte Pages können geladen bleiben ohne sie zu schreiben.
Steal #
-
¬steal: Seiten werden nicht ersetzt wenn auf ihnen dirty Daten sind. Also wenn sie noch von einer Aktiven Transaktion modifiziert werden.
-
steal: Jede (nicht fixierte) Seite ist Kandidat für die Ersetzung, falls neue Seiten geladen werden müssen.
Implikationen #
-
Bei einer force Strategie ist kein redo nötig (R2 Recovery nicht nötig)
- Da Winner direkt auf der Platte landen
-
Bei einer steal Strategie ist immer undo nötig (R3 Recovery immer nötig)
- Weil bei steal dirty Daten auf der Platte landen können