|
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.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |