Dateien Synchronisieren

#2754363
Lesenswert?

Hallo,

mal ne Frage:

Bei Programmen wie Dropbox, welche Dateien Blockweise übertragen(sprich 
ich mache eine Änderung im File, es wird nicht alles übertragen sondern 
nur der geänderte Block der Datei) weiss jemand wie so ein Algorithmus 
grob funktioniert?

Ich stelle mir das ganze so vor:
Änderung an Datei auf Client wird erkannt, man unterteilt das file in 
blöcke für die man den Hash berechnet, und vergleicht.
Wenn man eine Textdatei mittendrin editiert, leuchtet mir das noch 
ein...man beginnt am Dateianfang, irgendwann stimmt der Hash nicht 
überein für einen Block, ich übertrage den Block wobei man dann noch 
irgendwie die Länge bestimmen muss, welcher Teil übertragen wird.


Wo das ganze aber nicht funktioniert, ist wenn ich den Anfang der Datei 
ändere.
Angenommen ich habe zwei Files, Lösche in einem die ersten 5 Bytes und 
berechne dann die Blöcke für den Hash. Dann werden ja nie mehr 
identische Blöcke festgestellt?
Weis jemand wie das gelöst?
Also es geht nicht darum die Änderung zu erkennen, sondern es so zu 
erkennen das nicht das gesamte File übertragen werden muss.

Oder ist das mithilfe einer Datenbank implementiert? Bei Dropbox scheint 
da ja etwas im Hintegrund zu laufen, da man alte Files anzeigen kann.

Weiss jemand mehr?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren