Как работает синхронизация Dropbox? - PullRequest
8 голосов
/ 15 августа 2011

Я хочу знать, как dropBox может синхронизировать большие файлы данных без замены или повторной загрузки файлов на сервер dropbox

Пример: зашифрованный zip-архив

Предположим, у меня есть файл зашифрованного zip-архива объемом 1 ГБ, полностью синхронизированный на моем компьютере и на серверах Dropbox,

На своем компьютере я добавил в этот zip-архив файл размером около 5 МБ, а затем сохранил файл на своем компьютере,

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

Так же работают контейнеры TrueCrypt

Любые ключевые слова, идеи, темы, обзоры, ссылки, код с благодарностью.

Ответы [ 2 ]

8 голосов
/ 10 августа 2012

Dropbox использует алгоритм rsync для генерации дельта-файлов с разницей из файла A1 в файл A2.Только дельта (обычно намного меньше, чем A2) загружается на серверы Dropbox, поскольку в Dropbox уже есть файл A1.Затем дельта-файл можно применить к файлу А1, превратив его в файл А2.

Подробнее об алгоритме можно узнать здесь.http://en.wikipedia.org/wiki/Rdiff-backup#Variations

Исходный код библиотеки для создания дельты можно найти здесь.http://librsync.sourceforge.net/

1 голос
/ 15 августа 2011

Моя первая мысль (уже поздно, извините!) Заключается в том, что он может выполнять хэш на уровне блока.

Например, он может сгенерировать хэш для каждого сегмента 64 КБ, а затем загрузить весь сегмент длякаждая часть имеет свой хеш.

...