Ist rsync eine gute Option, um eine einzelne kleine Datei synchron zu halten?

Ist rsync eine gute Option, um eine einzelne kleine Datei synchron zu halten?

Ich muss eine einzelne, relativ kleine Datei über eine langsame und instabile DFÜ-Modemverbindung auf dem neuesten Stand halten.

Bei der Datei handelt es sich um eine XML-Datei, die mit 15 KB beginnen und zwei Stunden später 500 KB groß sein könnte.

Es handelt sich um eine unidirektionale Replikation. Meine aktuelle Lösung lädt die gesamte Datei einmal pro Minute herunter. Bisher funktioniert es gut mit Breitbandverbindungen, aber jetzt muss ich es an einem Ort verwenden, an dem nur DFÜ verfügbar ist. Die Illusion von „Echtzeitdaten“ geht verloren, weil der Download langsam ist.

Ich dachte, dass rsync mich davor bewahren könnte, ein proprietäres (und mangelhaftes) „Nur-Delta“-Protokoll zu entwickeln. Ich frage mich, ob rsync in diesem speziellen Fall wirkliche Vorteile bieten würde.

Die Frage ist also: Ist das rsync-Protokoll für eine einzelne Datei von 15 KB bis 500 KB geeignet?

Antwort1

Nicht in diesem Fall. Sie sind besser dran, wenn Sie etwas wiediffxmlum nur die Unterschiede zwischen den Dateien als Update zu senden und den Patch auf dem Zielcomputer anzuwenden.

Antwort2

Also, ich habe es mit rsync gemacht und muss sagen, dass es gut funktioniert hat.

Es werden so wenige Daten übertragen, dass ich die Aktualisierungsfrequenz bei einer schmalen DFÜ-Verbindung auf 20 Sekunden verkürzen konnte (ein Drittel der vorherigen Frequenz, die wir mit Breitband verwendet haben!).

Das Aktualisieren einer 800 KB großen XML erfordert jetzt 5 KB Download + 800 Byte Upload!

Das Überprüfen von Versionen, wenn keine zu aktualisierenden Änderungen vorliegen, dauert weniger als 500 Byte Download + 100 Byte Upload! (Ich übertrage mehr Bytes, wenn ich in einer normalen Chat-Sitzung tippe!)

Viel besser als andere Diff-Lösungen, und ich musste nichts drumherum programmieren. (Früher hatten wir überlegt, einen Push-Mechanismus hinzuzufügen, um rsync zu starten, aber das brauchen wir noch nicht wirklich. 20 Sekunden sind akzeptabel, und das Polling ist sehr einfach.)

Gut gemacht, rsync!

PS: Git habe ich nicht ausprobiert, aber es wäre wahrscheinlich auch eine gute Lösung gewesen.

verwandte Informationen