Subversion не хранит логические папки в одной структуре на сервере, он отслеживает все в файле дельт в «базе данных». Эта база данных специфична для Subversion. Все, что хранится в этом хранилище, помещается в этот файл. Вы не найдете свою логическую структуру на сервере, она просто так не работает.
В середине 2004 года появился второй тип
система хранения репозитория вступила в
существо: тот, который не использует
База данных вообще. Репозиторий FSFS
сохраняет ревизионное дерево в одном
файл, и так все хранилище
ревизии можно найти в одном
подкаталог, полный пронумерованных файлов.
Транзакции создаются в отдельных
подкаталоги. По завершении
один файл транзакции создается и
перемещен в каталог ревизий, таким образом
гарантируя, что коммиты являются атомными.
И потому, что файл ревизии
постоянный и неизменный,
хранилище также может быть сохранено в то время как
«Горячий», как Беркли DB
хранилище.
Формат файла ревизии представляет собой
структура каталогов, файл
содержимое и дельты против файлов в
другие ревизионные деревья. В отличие от
БД Беркли БД, это хранилище
формат переносим по разным
операционные системы и не чувствительны
к архитектуре процессора. Потому что есть
нет журналов или файлов с общей памятью
будучи использованным, хранилище может быть
безопасный доступ через сеть
файловая система и проверена только для чтения
среда. Отсутствие базы данных
накладные расходы также означают, что в целом
Размер хранилища немного меньше.
FSFS имеет разную производительность
характеристики тоже. При совершении
каталог с огромным количеством файлов,
FSFS использует алгоритм O (N) для добавления
записи, в то время как Беркли DB использует
O (N ^ 2) алгоритм переписать весь
каталог. С другой стороны, FSFS
записывает последнюю версию файла как
дельта против более ранней версии,
Это означает, что проверка
последнее дерево немного медленнее, чем
извлечение полных текстов, хранящихся в
Berkeley DB HEAD редакция. FSFS также
имеет более длительную задержку при завершении
совершить, что может в крайних случаях
вызвать ожидания клиентов во время ожидания
для ответа.
Самое важное различие,
однако неспособность FSFS быть
«Вклинивается», когда что-то идет не так. Если
процесс с использованием базы данных Berkeley DB
сталкивается с проблемой разрешений или
внезапно вылетает, база данных оставлена
непригоден для использования до администратора
восстанавливает это. Если те же сценарии
случиться с процессом, использующим FSFS
хранилище, хранилище не
пострадал на всех. В худшем случае некоторые
данные транзакции остались позади.