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?
Vermutlich wird ein ähnliches Verfahren wie bei Rsync angewendet: - http://de.wikipedia.org/wiki/Rsync#Funktionsweise - http://rsync.samba.org/tech_report/node4.html
ah...danke...rsync hatte ich nicht auf dem Plan. Ich schau mir das mal an
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.