Vielleicht war das auch nur eine Beschreibung von Memory Mapped Files. Denn da wäre das genau so wie beschrieben, mit dem Unterschied, dass es nicht die PageFile ist sondern jede X-beliebige Datei.
Würde ich auch vermuten. Um tatsächlich nach dem Absturz konsistente Daten zu haben braucht etwas mehr Aufwand (-> Transaktionen), aber im Prinzip ist das gut möglich.
Das mit den konsistenten Daten ist kein Problem und eine (Datenbank-)Transaktion pfuscht mir da auch nicht rein, im Gegenteil, die sorgt eben genau für die Konsistenz auch in diesem Fall.
Es gibt einfach zwei Arten von Transaktionen:
- Datenbank-Transaktion
- Business-Transaktion
(siehe
Martin Fowler - Pessimistic Offline Lock oder
Martin Fowler - Optimistic Offline Lock)
Der Zaubertrick ist jetzt eine Sicherung jedes Schritts der Business-Transaktion in einer Datei (wie auch immer geartet). Bei einem Absturz kann dann die Business-Transaktion daraus einfach wiederhergestellt werden. Zum Abschluss der Business-Transaktion wird natürlich der Datenbank-Server benötigt. Die Business-Transaktion spult nun alles an den
DB-Server (in einer
DB-Transaktion) rüber. Ist das erfolgreich abgeschlossen worden, wird auch die Business-Transaktion abgeschlossen.
Bricht jetzt die Verbindung zum
DB-Server zusammen, dann ist einfach die Business-Transaktion noch offen. Der
DB-Server wird nach einem Timeout einfach die Session und damit auch die
DB-Transaktion killen und es ist nichts passiert. Bei der nächsten Verbindung zur
DB wird das ganze Spiel wiederholt.
Diese Datei mit der Business-Transaktion kann man auch gut und gerne als Auslagerungsdatei bezeichnen, und schon wissen wir woher dieser (Aber)glaube mit der
pagefile.sys kommt