Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#11

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 22:22
Zweitens: mir scheint du mißverstehst wie das normale MSDN-Library durchsuchenDeleteFile funktioniert. DeleteFile löscht nicht etwa, wie der Name es suggeriert, die Datei. Stattdessen setzt diese Funktion - übrigens mit der gleichen Methode die ich oben schon erwähnte (SetFileInformationByHandle) - ein Flag. Wenn die Funktion zum Aufrufer zurückkehrt muß die Datei noch lange nicht gelöscht sein (in NTFS kann das durchaus mal ein paar Sekunden dauern, wenn das System gerade "zu tun" hat).

Kurzum DeleteFile ist ebensowenig atomar wie MoveFileEx. Hammer, oder?

Und "schlimmer" noch, bei näherer Betrachtung ist die vermeintliche Inkonsistenz nicht so inkonsistent wie du meinst. Transaktionen geben ja Garantien. Wenn nun also eine Datei, bspw. durch einen anderen Prozeß, zum Löschen vorgemerkt wird, dann ..
"Transaktionen geben ja Garantien", das ist für mich der entscheidende Satz. In "Datenbanken" die ich meine -ACID konform- wird das tatsächlich eingehalten. Ein Operation funktioniert ganz oder gar nicht. Punkt.
Im oberen Teil Deines Zitats sieht die Darstellung des Löschvorgangs allerdings so aus, als sei dies gar nicht garantierbar, damit neigt sich für mich die Waage Richtung Designfehler. Vielleicht ist das auch zu drastisch ausgedrückt. Das Delete müsste ja nicht zurückkommen, bevor es seine Arbeit wirklich gemacht hat. Wäre es so, dann würden alle stöhnen, wie lahmar...ig das System ist. (Wahrscheinlich ist diese Hase und Igel Nummer eine Auflage aus der User Experience Abteilung.) Und wer schon mal "Dateien zum Löschen vormerkt", schubst wahrscheinlich auch alte Omas ins Hafenbecken oder stellt ihnen wenigstens ein Bein.

Windows will aber ja flink und nett sein und alles automatisch richtig machen. Leider kann man es halt nicht allen recht machen.
Gruß, Jo
  Mit Zitat antworten Zitat