Welche Art von Dateien sind für rsync optimal?

Welche Art von Dateien sind für rsync optimal?

Meines Wissens nach wird der Algorithmus im rsync-Tool die Datei in Slices aufteilen und für jedes Slice einen Hash berechnen. Ich gehe also davon aus, dass es Dateien gibt, bei denen der Hash-Algorithmus eine Datei neu aufbaut, ohne tatsächlich weniger Daten zu übertragen. Ich nehme an, eine Datei mit nur Nullen wäre ein guter Kandidat, oder?

Antwort1

Der rsync-Algorithmus ist ausgefeilter. Für die Remote-Datei werden Hashes für Dateisegmente berechnet und an das lokale rsync übertragen. Das lokale rsync verwendet diese Hashes, um überall in der lokalen Datei übereinstimmende Dateiabschnitte zu finden. Diese übereinstimmenden Abschnitte werden nicht übertragen. Stattdessen werden Token gesendet, die dem Remote-rsync mitteilen, wie diese Abschnitte reproduziert werden sollen. Auf diese Weise vermeidet rsync die Übertragung der gesamten Datei.

Optimale Dateien für rsync sind also solche, die große Mengen gemeinsamer Daten enthalten, die möglicherweise durch Einfügungen und Löschungen verschoben wurden, z. B. die Art von Dateien, die durch typische menschliche Bearbeitungsaktivitäten erzeugt werden. Dies ist nicht überraschend, da, wie rsync-Autor Andrew Tridgell in seinemDoktorarbeitbegann er, über den Rsync-Algorithmus nachzudenken, während er ungeduldig darauf wartete, dass die Quelldateien des Programms über eine Modemverbindung aktualisiert wurden.

verwandte Informationen