Thread jede 2. Zeile in einer Text Datei löschen (19 answers)
Opened by Rambo at 2009-11-10 10:23

sid burn
 2009-11-10 16:47
#128083 #128083
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Es geht um "atomar" verändern. "pq" hat ja mit der Dauer des Kopierens zwischen verschiedenen Dateisystemen schon angedeutet das es "länger" dauern kann. Allerdiengs wäre das noch nichtmal so entscheidend.

Das Problem ist das das Kopieren selber wieder eine neue nicht atomare Aktion ist. Sprich Datei A wird nach Datei B übertragen (kopiert). Daher die Originaldatei wird überschrieben (gelöscht) und die neue Datei wird herrein kopiert.

Wenn der Vorgang währrend des Kopierens abbricht dann hast du dann danach deine alte Datei verloren, und evtl. eine neue z.B. zur Hälfte übertragene Datei.

Das Umbennen auf dem Dateisystem selber ist aber atomar. Daher entweder zeigt das Dateisystem mit dem verzeichniseintrag auf die neue oder alte datei. ( Da das Dateisystem / OS allerdiengs ebenfalls Cachen kann ist allerdiengs nicht garantiert das der Inhalt der Datei schon zur Festplatte geschrieben wurde sofern man kein "fsync()" macht )

Primär ist das Kopieren selber also etwas wodurch man nicht mehr atomar ist. Das bei großen Dateien das Kopieren evtl. länger dauern kann ist noch ein zusätzlicher Nachteil der entstehen kann.
Last edited: 2009-11-10 16:49:14 +0100 (CET)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread jede 2. Zeile in einer Text Datei löschen