Wie synchronisiert Windows Live Mesh Dateien zwischen Computern?

951
Ken Pespisa

Computer A und Computer B synchronisieren einen bestimmten Ordner. Sie fügen dem Ordner auf Computer A eine 2-GB-Datei hinzu, die natürlich über das Kabel zu Computer B geschoben wird, wenn auch langsam. Wenn Sie dann Änderungen an der 2-GB-Datei auf Computer A vornehmen, was passiert dann?

Ich schätze, die Entscheidungen sind wirklich

a) schiebt die gesamte 2 GB-Datei auf Computer B oder b) analysiert die Unterschiede zwischen den beiden Dateien und sendet nur die Änderungen über die Leitung. Der Netzdienst von Computer B wendet dann diese Änderungen an.

Aber was ist das?

Was passiert auch, wenn ich die 2 GB-Datei in einen Unterordner verschiebe?

6

1 Antwort auf die Frage

5
Matt

Wenn Sie dann Änderungen an der 2-GB-Datei auf Computer A vornehmen, was passiert dann?

Es gibt mehrere Möglichkeiten, die Änderung zu erkennen.

  1. Sie könnten Hash der Datei und sehen, ob die Hash unterscheidet (teuer). Dies ist die Methode, die viele MMO-Patcher für Dateiintegritätsprüfungen usw. verwenden.

  2. Das Dateisystem enthält ein Feld, das zuletzt geändert wurde. Die Indizierung der Datei nach Änderungsdatum ist daher relativ kostengünstig. Dann müssen Sie einfach das Verzeichnis regelmäßig abfragen und bei Bedarf aktualisieren.

  3. Bei vielen Betriebssystemen können Sie tatsächlich eine Liste von Dateien / Ordnern abonnieren und über Änderungen benachrichtigt werden, wenn neue Dateien hinzugefügt werden usw.

Dann müssen wir nur die Änderungen senden. Viele Protokolle und Algorithmen unterstützen nur das Senden der Änderungen. Rsync ist ein gut verwendetes Protokoll (und ähnelt wahrscheinlich dem, was Mesh tut), das nur den Unterschied zwischen Computern mit Komprimierung umsetzt, so dass es ziemlich bandbreiteneffizient ist. Das Problem bei großen Dateien ist, dass eine Änderung eine große Kette kleiner Änderungen verursachen kann, die nur schwer effizient zu unterscheiden sind.

Ich bin mir ziemlich sicher, dass Mesh bei der Übertragung zwischen Maschinen sowohl Differenzial als auch Kompression verwendet. Aber es ist ein Closed-Source-Produkt und ich konnte nichts finden, was das bestätigt.

Was passiert auch, wenn ich die 2 GB-Datei in einen Unterordner verschiebe?

In den meisten Fällen müssen Sie die Änderungen erneut herunterladen. Das Programm sieht dies in jeder Hinsicht als Löschen und dann wird eine neue Datei am neuen Speicherort hinzugefügt.

Theoretisch könnten Sie alle Dateien mit einem Hash versehen und prüfen, ob der neue Zusatz bereits gespeichert ist, indem Sie die Hashes vergleichen. Dies wäre ziemlich teuer (zum Beispiel, wenn Sie 1.000 kleine Dateien hinzufügen).

Wunderbar geschrieben Ich denke jedoch, dass die Frage mehr war, was das Windows Live Mesh-Produkt macht. Chris_K vor 13 Jahren 5
Ich habe ein paar Tests gemacht und Sie haben in beiden Punkten Recht. Je nachdem, wie schnell Mesh in den Status "Up to Date" zurückgekehrt ist, wird definitiv eine Art Differenz zwischen den Maschinen und nicht der gesamten Datei gesendet. Beim Verschieben von Dateien habe ich außerdem bestätigt, dass die Originale gelöscht und neue Dateien zum neuen Ordner hinzugefügt wurden. Ken Pespisa vor 13 Jahren 1
Eine andere lustige Tatsache. Ich habe etwa 150+ 100 MB-Dateien von Computer A in einen neuen Ordner verschoben. Nachdem NetOp dies festgestellt hatte, tastete Mesh langsam durch die Liste auf Computer B und lud sie erneut herunter, als wären sie neu (nachdem sie die Dateien aus dem ursprünglichen Ordner gelöscht hatten) ). Ich habe viel zusätzlichen Bandbreitenverbrauch eingespart, indem ich diese Dateien aus dem Papierkorb von Computer B in den richtigen Ordner verschoben habe. Mesh hat die Änderung auf intelligente Weise erkannt, den Ordner erneut gescannt und als aktuell angezeigt. Ken Pespisa vor 13 Jahren 1