[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Datenspeicherung in Datenbanken (war: DigiKam und die alten Bilder)



>> Den leztztendlich sind für das OS oder Backup alles nur Dateien, und
>> kennt den Inhalt der Dateien nicht, und irgendeine Applikation kann
>> diese während des lesens verändern.
> 
> Das stimmt so nicht. Programme schreiben Dateien idealerweise atomar.
> Eine alte Datei wird nicht einfach mit den neuen Daten
> überschrieben, sondern die neuen Daten werden in eine neue Datei
> geschrieben und diese anschließend auf den alten Namen umbenannt.

Leider sind nicht alle Programme so ideal geschrieben. Es ist außerdem
auch für manche Dateien gar nicht klug, es so zu machen. Es bürdet dem
Programm nämlich eine Menge auf:

 - Datei (bzw. die darin enthaltenen Nutzdaten) muss komplett ins
   RAM passen
 - Dateirechte der neuen Datei müssen explizit gesetzt werden,
   incl. eventueller ACLs und sonstiger "extended Attribute"
 - Ist die Datei ein Symlink wird es noch aufwändiger und muss
   explizit neu angelegt werden
 - Ist die Datei ein Hardlink geht es gar nicht mehr, ohne das
   Dateisystem zu scannen und die anderen Verzeichniseinträge,
   die auf die alte Datei verweisen, ebenfalls umzubiegen.

> Datenbanken schreiben ihre Daten nicht in dieser Weise, [...]
> Für ein Backup-Programm, das am DBMS vorbei auf dessen Dateien
> zugreift, gelten diese Garantien nicht.

Das stimmt allerdings. Meistens jedenfalls.

Lars R.


Reply to: