6

Компьютер A и компьютер B синхронизируют данную папку. Вы добавляете файл 2 ГБ в папку на компьютере A, естественно, он проталкивается по проводам на компьютер B, хотя и медленно. Что произойдет, если вы внесете изменения в файл объемом 2 ГБ на компьютере A?

Я полагаю, что выбор действительно

a) он передает весь файл 2 ГБ на компьютер B или b) анализирует различия между двумя файлами и отправляет только изменения по проводам. Служба сетки компьютера B применяет эти изменения.

Но что это?

Кроме того, что произойдет, если я переместу этот файл объемом 2 ГБ в подпапку?

1 ответ1

5

Что произойдет, если вы внесете изменения в файл объемом 2 ГБ на компьютере A?

Есть несколько способов обнаружения изменений.

  1. Вы можете хешировать файл и посмотреть, отличается ли хеш (дорого). Этот метод используют многие патчеры MMO для проверки целостности файлов и т.д.

  2. Файловая система поддерживает последнее измененное поле. Таким образом, индексирование файла по дате модификации является относительно экономически эффективным. Тогда вам просто нужно регулярно опрашивать каталог и обновлять информацию по мере необходимости.

  3. Многие операционные системы фактически позволяют вам подписаться на список файлов / папок и получать уведомления об их изменении, добавлении новых файлов и т.д.

Тогда нам нужно отправить только изменения. Многие протоколы и алгоритмы поддерживают только отправку изменений. Rsync - это хорошо используемый протокол (и, вероятно, похожий на то, что делает меш), который транслирует только разницу между машинами со сжатием, поэтому он довольно эффективно использует пропускную способность. Проблема с огромными файлами заключается в том, что одно изменение может вызвать огромную цепочку небольших изменений, которые довольно трудно эффективно обработать.

Я почти уверен, что сетка использует как дифференциал, так и сжатие при передаче между машинами. Но это продукт с закрытым исходным кодом, и я не смог найти ничего подтверждающего это.

Кроме того, что произойдет, если я переместу этот файл объемом 2 ГБ в подпапку?

В большинстве случаев вам нужно будет повторно загрузить изменения. Для всех намерений и целей программа увидит это как удаление, а затем новый файл будет добавлен в новом месте.

Теоретически вы можете хэшировать все файлы и посмотреть, сохранено ли новое дополнение, сравнив хэши. Это будет довольно дорого (например, если вы добавляете 1000 небольших файлов).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .