11

数据库文件系统是一种文件系统,它是数据库而不是层次结构。最初的想法并不太复杂,但我想我会问是否有人考虑过他们如何做这样的事情?一个简单的计划可能会遗漏哪些问题?我对实现的第一个猜测可能类似于 Linux 平台的文件系统(可能在现有文件系统之上),但我真的不太了解如何启动它。这是一个短暂的想法,我怀疑我是否会坚持下去,但我希望至少能满足我的好奇心。

4

5 回答 5

5

DBFS是 KDE 的一个非常好的 PoC 实现。它不是直接将其实现为文件系统,而是基于对传统文件系统的索引,并构建新的用户界面以使用户可以访问结果。

于 2010-02-23T10:02:46.807 回答
2

最简单的方法是使用带有数据库后端的fuse来构建它。

更困难的事情是将其作为内核模块(VFS)。

在 Windows 上,您可以使用IFS

于 2009-05-30T22:09:50.143 回答
1

我不太确定您所说的“数据库文件系统是一个文件系统,它是一个数据库而不是层次结构”。

正如 Osama ALASSIRY 所提到的,使用“用户空间中的文件系统”(FUSE)可能是一个好主意。FUSE wiki 列出了许多关于数据库支持的文件系统以及您可以通过类似 SQL 的查询进行搜索的文件系统的现有项目。

于 2009-06-14T21:33:18.847 回答
0

也许是了解它如何工作的一个很好的起点。

这是Firebird架构基本概述。

Firebird 是一个开源 RDBMS,因此如果您有兴趣,也可以深入了解一下。

于 2009-05-29T05:46:10.507 回答
0

你问这个已经有一段时间了。我很惊讶没有人提出显而易见的建议。看看大型机和小型机,尤其是 iSeries-OS(现在称为 IBM-i,以前称为 iOS 或 OS/400)。

如何将关系数据库做为海量数据存储相对容易。Oracle 和 MySQL 都有这些。问题是它必须对最终用户应用程序基本上无处不在。

因此,应用转换的步骤是:

1) 普通分层文件系统中的所有内容

2) BLOB 中的数据,数据库中有少量元数据。包含一些目录信息的文件。

3) BLOB 中的大数据,数据库中有大量元数据和复杂结构。具有与其关联的大量元数据的文件,基本上可以理解结构。

4) 对象中暴露的 BLOB 的内部结构 <--> 具有大量元数据的关系图。虽然可能存在可导出的表单,但应用程序自然而然地与数据库一起工作,文件作为存储库的概念丢失了。

于 2011-03-04T18:21:03.533 回答