Файловая система базы данных - это файловая система, которая представляет собой базу данных вместо иерархии. Сначала не слишком сложная идея, но я подумал, что спрошу, думает ли кто-нибудь о том, как они могут сделать что-то подобное? Какие проблемы может пропустить простой план? Мое первое предположение о реализации было бы чем-то вроде файловой системы для платформы Linux (возможно, поверх существующей файловой системы), но я действительно мало знаю о том, как это будет запущено. Его мимолетная мысль, что я сомневаюсь, что я когда-либо прослежу, но я надеюсь хотя бы удовлетворить свое любопытство.
Как бы вы построили файловую систему базы данных (DBFS)?
Ответ 1
Самый простой способ - создать его с помощью fuse с базой данных базы данных.
Более сложная задача - иметь его как модуль ядра (VFS).
В Windows вы можете использовать IFS.
Ответ 2
DBFS - действительно хорошая реализация PoC для KDE. Вместо того чтобы внедрять его как файловую систему напрямую, он основан на индексировании в традиционной файловой системе и создании нового пользовательского интерфейса, чтобы сделать результаты доступными для пользователей.
Ответ 3
Я не уверен, что вы имеете в виду: "Файловая система базы данных - это файловая система, которая представляет собой базу данных вместо иерархии".
Возможно, использование "Файловая система в пространстве пользователей" (FUSE), как упоминалось в Osama ALASSIRY, является хорошей идеей. FUSE wiki перечисляет множество существующих проектов о файловых системах с поддержкой баз данных, а также файловых системах, в которых вы можете выполнять поиск по SQL-подобным запросам.
Ответ 4
Возможно, это является хорошей отправной точкой для получения идеи о том, как она может работать.
Это основной обзор Firebird.
Firebird - это RDBMS с открытым исходным кодом, поэтому вы можете иметь реальный глубокий взгляд, если вы заинтересованы.
Ответ 5
Прошло некоторое время с тех пор, как вы спросили об этом. Я удивлен, что никто не предложил очевидного. Посмотрите на мэйнфреймы и мини, особенно iSeries-OS (теперь называемый IBM-i раньше назывался iOS или OS/400).
Как сделать реляционную базу данных как хранилище массовых данных относительно легко. У Oracle и MySQL есть и такие. Уловка должна быть по существу вездесущей для приложений конечного пользователя.
Итак, шаги для преобразования приложения:
1) Все в нормальной иерархической файловой системе
2) Данные в BLOB с легкими метаданными в базе данных. Файл с информацией о каталоге.
3) Большие данные в BLOB с обширными метаданными и сложными структурами в базе данных. Файл с существенными метаданными, связанными с ним, которые могут быть в основном для понимания структуры.
4) Внутренние структуры BLOB, выставленные в объекте ↔ Реляционная карта с обширными метаданными. Хотя может быть экспортируемая форма, приложение, естественно, работает с базой данных, понятие файла по мере потери репозитория.
Ответ 6
Если вы используете Python, посмотрите на SpiderOak Транзакционная система хранения:
API-интерфейс доступной файловой системы на основе python, поддерживающий наиболее типичный файл операции (каталоги, папки, создание файлов, чтение, запись, поиск, переименование и т.д.) с отказоустойчивостью транзакций. Ты можешь открыть файловую систему, выполнить любое количество изменений, а затем совершать или откатывать все изменения атомарно. Это позволяет нам строить SpiderOak использует простые, традиционные файлы в качестве контейнеров. Пользы SQLite внутри системы хранения и, таким образом, сохраняет всю файловой системы в одном файле на диске. Является многопроцессорным и поточно.