Файловое циклическое устройство с поддержкой записи и динамическим размером
Обычно устройство петли (диск v-узла) основывается на файле с предварительно назначенным размером (например, образ дисковода гибких дисков или диска ISO). Устройство затем обрабатывается как блочное устройство и может быть отформатировано в любой файловой системе, поддерживаемой операционной системой, например ext3.
С другой стороны, FUSE позволяет монтировать архивы с записью поддержки, т.е. archivemount . Можно записывать файлы на подключенный диск, и основной архив будет увеличиваться для размещения всех файлов, записанных на него. Таким образом, он ведет себя как блочное устройство, но без определенной файловой системы - файловая система определяется типом архива, например, zip, tar.
Я ищу реализацию устройства с файловой поддержкой, которое может динамически расти, чтобы вместить любое количество файлов (ведет себя как архив, смонтированный с FUSE), но с эффективной реализацией операций чтения / записи / поиска (как это было бы в случае с файловая система в блочном устройстве).
Под эффективностью я подразумеваю более эффективный, чем линейный поиск в файле, поэтому, возможно, с некоторой распределенной индексацией файлов, содержащихся в файле.
В качестве примера того, что я имею в виду, давайте рассмотрим несжатый архив tar, смонтированный с archivemount. Он поддерживает чтение / запись, но операция поиска неэффективна, поскольку tar-архивы не поддерживают TOC - они должны работать с ленточными архивами.
В случае zip-архивов, смонтированных с помощью функции mountmount, чтение и поиск эффективны, потому что zip поддерживает TOC, однако запись неэффективна, поскольку часто включает повторное сжатие всего архива.
Другим примером может быть разреженный файл, монтируемый через петлевое устройство - он разреженный, поэтому он может динамически увеличиваться, но до указанного фиксированного максимального размера, что не соответствует моим требованиям.
Еще один пример - файл базы данных CouchDB или формат файла MBox . В обоих случаях данные всегда добавляются в файл (например, вместо удаления файла он помечает его как удаленный и добавляет новую версию). И чтобы освободить место, используемое время от времени удаленными файлами, файл должен быть сжат. С таким файлом все операции выполняются быстро, включая поиск, потому что он всегда читает последнюю версию файла. Однако я не знаю ни одной такой реализации для хранения произвольных файлов.
Итак, существует ли такая реализация устройства с файловой поддержкой?
0 ответов на вопрос
Похожие вопросы
-
6
Формат файла документа для всеобщего принятия?
-
5
С какими файловыми системами будет работать Google Chrome OS?
-
4
Читать раздел OS X из Windows 7
-
-
3
Смонтировать ext3fs в Windows
-
3
Стоит ли использовать VFAT или ext3 для внешнего USB-накопителя емкостью 1 ТБ?
-
4
Сайт со списком самых популярных форматов файлов
-
1
NFS сервер для Windows
-
1
µTorrent упоминает, что у меня недостаточно места, но у меня есть?
-
2
NTFS5 файловая система в Windows XP
-
5
Что случилось с WinFS?