Thema: Sparse-Datei

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: Sparse-Datei

  Alt 30. Jul 2018, 15:01
Solche Dateien hab ich schon versucht zu finden aber habe keine gefunden.
Joar, ist schon ein bissl blöd, dass CompressedFiles nur als Compressed aber nicht als Sparse markiert sind, auch wenn sie es intern nutzen.

Aber ja, fast nirgendwo wird diese Technik benutzt.

Sowas ist vorallem auch nur dann sinnvoll, wenn Dinge an harten Speicheradressen in der Datei liegen und viele Plätze frei sind.
z.B. bei einer Map/Matrix, wo die Teile eine feste Größe haben und schnell/direkt adressiert werden können sollen. (einige DBMS könnten sowas verwenden)
Oder als "Kopierschutz", wie man es auch von CDs/DVDs kennt. (die Daten/Lizenzinfos sind in extrem großen Dateien, auch wenn diese eigentlich fast leer sind, bzw. der Dateiinhalt mehrfach verlinkt/dupliziert ist)

Auch beim Download großer Dateien wäre sowas praktisch, wenn hier mit mehreren Threads und/oder an Zufallspositionen geladen wird.
Nur kenn ich da auch kein Programm, welches es nutzt, und somit vorher die Datei in voller Größe mit 0 gefüllt erstellt. (0 ist das, womit Windows automatisch auffült, wenn man hinter dem Dateiende schreibt)




Sowas Ahnliches, was SparseFiles machen, wird auch bei der Deduplizierung verwendet. (hier zusätzlich noch eine LinkListe in den Metadaten der Datei)
Früher gab es nur HardLinks, also wo mehrere Dateien auf den selben Speicher/Dateiinhalt zeigten. (1111)
Inzwischen ist sowas auch für Dateiteile möglich, welche untereinander verlinkt sein können.
Nur hier gibt es wirklich enorme Probleme, da ein paar Programme damit nicht umgehen können und dann den Dienst verweigern ... z.B. SVN, wo Turtoise knallt, wenn es lokal auf solche Dateien trifft.
Blöd, dass hier auf ein "Attribut" falsch geprüft wird und SVN dann einen Fehler wirft "E270001: Symlinks are not supported on this platform", obwohl auch hier die Schreib-/Lesezugriffe vom NTFS-Treiber aufgelöst werden und es dem Programm eigentlich vollkommen egal sein kann.

1111: Wobei das eigentlich alle Programme behandeln sollte, denn wenn der Inhalt einer Datei geändert wird, ändert sich auch die andere Datei, da kein automatisches CopyOnWrite.
Aber gerade das prüft kein mir bekanntes Programm.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Jul 2018 um 15:19 Uhr)
  Mit Zitat antworten Zitat