Распределённая файловая система хранения вроде Dropbox опирается на три основных компонента:
Файлы разбиваются на чанки фиксированного размера (например, по 4MB каждый). Каждый чанк хешируется с помощью SHA-256, что даёт отпечаток содержимого.
file.mp4 → [chunk_1, chunk_2, chunk_3] → [hash_1, hash_2, hash_3]
Загружаются только изменённые чанки, что делает инкрементальную синхронизацию крайне эффективной.
Перед загрузкой клиент проверяет, существует ли хеш чанка уже в хранилище. Если да, загрузка пропускается полностью — это называется content-addressed storage и значительно снижает объём дублирующихся данных.
Десктопный агент синхронизации ведёт локальный манифест с хешами файлов. При изменении файла:
Другие устройства получают уведомления об изменениях и скачивают только затронутые чанки.
Когда два устройства в офлайне изменяют один файл, система обнаруживает конфликт версий через сравнение vector clocks или временных меток. Стратегия разрешения обычно такая:
Content-addressed storage с SHA-256 хешированием позволяет дедупликации, так как несколько файлов с идентичными chunks могут ссылаться на одни и те же сохранённые данные, исключая избыточные загрузки у всех пользователей.
Новый — ещё не проверен сообществом
Вы