необходимо реализовать управление версиями в онлайн-инструменте резервного копирования - PullRequest
0 голосов
/ 13 июля 2009

Я работаю над разработкой приложения, которое будет выполнять онлайн-резервное копирование файлов и папок на ПК, автоматически или вручную. В настоящее время я хранил на сервере только самую последнюю версию файла. Теперь мне нужно реализовать управление версиями, чтобы на онлайн-сервер можно было передавать только изменения, и пользователь должен иметь возможность загрузить любую доступную версию файл на сервере резервного копирования.

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

Я никогда не работал над такой технологией, поэтому не хватает опыта. Я хотел бы знать, есть ли какой-либо реальный способ внедрить эту функциональность в приложение без особой боли. Разве какой-нибудь сторонний инструмент поможет выполнить то же самое? Пожалуйста, дайте мне знать?

Примечание. Я использую протокол FTP для передачи данных.

1 Ответ

1 голос
/ 13 июля 2009

Есть программа с именем dump , которая делает нечто подобное, но работает с блоками файловой системы, а не с файлами. rsync также может представлять интерес.

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

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

...