Das Absichern von Textdateien

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

*Ziel: Die Änderung der Textdatei muß atomar erfolgen. Das heißt, daß parallel laufende Leseprozesse jederzeit einen konsistenten Zustand sehen und bei einem Absturz entweder der alte oder der neue Stand in konsistenter Form vorliegt.
 
*Bei Textdateien geht dies nur durch die Neuerzeugung einer Datei. Hierzu wird eine temporäre Datei verwendet, die im gleichen Verzeichnis liegen sollte bzw. im gleichen Dateisystem liegen muß.
 
*Bevor die Textdatei nach Abschluß aller Schreiboperationen geschlossen wird, sollte sie mit flush und fsync abgesichert werden. Dann ist sichergestellt, daß sie vollständig auf der Festplatte geschrieben ist.
 
*Danach wird die temporäre Datei mit einer rename-Operation umgetauft in den Namen der Textdatenbank. Unter UNIX ist rename atomar, d.h. es ist immer einer der beiden Dateien sichtbar (zuerst die alte, dann die neue). Wenn es sonst keine harten Verweise auf den alten Stand gab, wird er automatisch beim rename gelöscht.
 
*Alle Operationen sollten ausnahmslos auf Fehler überprüft werden.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003