Ich versuche, 10000 Dateien gleichzeitig zu löschen, z. Entweder müssen alle auf einmal gelöscht werden, oder alle müssen an ihrem Platz bleiben.Atomic delete für große Mengen von Dateien
Natürlich ist die offensichtliche Antwort, alle Dateien in ein temporäres Verzeichnis zu verschieben und es bei Erfolg rekursiv zu löschen, aber das verdoppelt die erforderliche Anzahl von E/A.
Komprimierung funktioniert nicht, weil 1) Ich weiß nicht, welche Dateien gelöscht werden müssen, und 2) die Dateien müssen häufig bearbeitet werden.
Gibt es etwas, das die I/O-Kosten senken kann? Jede Plattform wird es tun.
EDIT: Nehmen wir an, ein Stromausfall kann jederzeit passieren.
+1: Markieren zum Löschen; Hör auf zu benutzen. Ein physisches Löschen kann jederzeit danach erfolgen. –
Was passiert, wenn etwas passiert, was dazu führt, dass eine der Dateien nicht löschbar ist, so wie eine von ihnen von einem anderen Prozess verwendet wird? Du könntest einfach darauf warten, dass es freigegeben wird, aber das könnte eine Weile dauern. Wie würden Sie zurückrollen, wenn nicht alles gelöscht werden könnte? – Kibbee
Genau das brauche ich. +1 für "Warum habe ich nicht daran gedacht?" –