Hallo, wenn ich auf einem COW-fähigen Dateisystem Die Datei A habe und davon die COW-kopien B und C erstelle, was passiert dann, wenn ich A überschreibe/lösche? 1) B und C sind nun redundant gespeichert 2) B und C bleiben dedupliziert
Stefan H. schrieb: > wenn ich auf einem COW-fähigen Dateisystem Die Datei A habe und davon > die COW-kopien B und C erstelle, was passiert dann, wenn ich A > überschreibe/lösche? COW läßt sich am einfachsten verstehen, wenn jeder Datenblock einen Zähler (Link-Counter; LC) bekommt, der anzeigt von wievielen Stellen aus er verwendet wird. Beim Kopieren eines Blocks wird der LC einfach erhöht. In der Ausgangs- situation ist also jeder Datenblock von A/B/C mit LC=3 markiert. Wenn du eine der 3 Dateien (egal welche) löschst, dann verringert sich der LC jeweils auf 2. Wenn du auf eine der 3 Dateien (wieder egal welche) schreibst, dann werden für den beschriebenen Teil neue Datenblöcke alloziert, mit LC=1 und für die bisher verwendeten Blöcke wird der LC auf 2 reduziert. Ganz allgemein gilt das: wenn du auf einen Block schreibst, der LC>1 hat, dann wird in diesem Moment eine private Kopie des Blocks gemacht und beschrieben. Deswegen "copy on write".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.