23. Februar 2007 15:09
Nun, das mit der "Liste der freien Blöcke" hat nicht unmittelbar etwas mit der HDD zu tun, hier geht es um logische Datenbankblöcke und das NAV "Versions Prinzip" (nur native DB):
Beginnt ein Benutzer eine Transaktion, so wird ein Snapshot der aktuellen Tabelle erstellt, d.h. der aktuelle Zustand der Daten wird gespeichert. Werden nun Daten geändert, so werden diese Änderungen nicht in den originalen Datenblöcken der Tabelle durchgeführt, sondern es werden neue - freie - Blöcke allokiert, die Daten der originalen Blöcke dorthin kopiert, und die Änderungen in den neuen Blöcken durchgeführt.
Wird die Transaktion abgeschlossen - COMMIT - so werden diese neuen Blöcke als neue Version zur Verfügung gestellt, die alten originalen Blöcke werden freigegeben.
Bricht die Transaktion ab - ROLLBACK - so werden die neuen Blöcke freigegeben, die alten bleiben gültig - keine neue Version erstellt.
Crasht also NAV in einer Transaktion, so wird beim Neustart die Liste dieser freien Blöcke aktualisiert, soz. nicht abgeschlossene Versionsänderungen "aufgeräumt".
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt