Аннотация:
В данной работе представлен обзор некоторых технологий, которые используются в современных системах резервного копирования, кратко описаны их преимущества и недостатки. Далее рассматривается подход к реализации системы резервного копирования с сохранением файлов в базе данных. Предлагается разбивать копируемые файлы на блоки фиксированной длины. Каждый блок представляет собой последовательность байт. Длина блока может быть адаптивной, т.е. меняться в зависимости от типа или размера файла. В таком виде содержимое файлов предлагается хранить в одной таблице, а информацию о них: имена, атрибуты и связи между ними — хранить в другой таблице. Сведения о сохраненных файлах и папках предлагается хранить не только в базе данных на сервере, но и на стороне клиента в некоторой иерархической структуре. Она содержит набор записей и представляет собой модель копируемой директории. Наличие такой модели позволяет отслеживать изменения в файловой системе клиента без выполнения дополнительных запросов к базе данных. В случае если файл изменен, в базу копируются только его изменившиеся блоки. При этом в модели на стороне клиента также обновляется информация, например дата изменения отредактированного документа. Удаляются записи об удаленных файлах и папках. Таким образом, уменьшается нагрузка на канал передачи данных. В статье описаны алгоритмы сохранения и восстановления данных, а также рассмотрены факторы, влияющие на скорость их работы. Наглядно показана зависимость скорости сохранения и восстановления данных от мелкости разбиения файлов, а также от структуры копируемой директории.
Ключевые слова:файл, данные, резервное копирование, база данных, блок, модель.