数据库文件系统是一个文件系统,它是一个数据库而不是一个层次结构。最初的想法不是太复杂,但我想我会问是否有人想过他们会怎么做这样的事情?一个简单的计划可能会错过的问题是什么?我对实现的第一个猜测是类似于Linux平台的文件系统(可能在现有的文件系统上),但我真的不知道如何启动它。这是一个过去的想法,我怀疑我是否会坚持到底,但我希望至少满足我的好奇心。
答案 0 :(得分:5)
DBFS对于KDE来说是一个非常好的PoC实现。它不是直接将其实现为文件系统,而是基于对传统文件系统的索引,并构建新的用户界面以使用户可以访问结果。
答案 1 :(得分:1)
答案 2 :(得分:1)
我不太确定你的意思“数据库文件系统是一个数据库而不是层次结构的文件系统”。
正如Osama ALASSIRY所提到的,使用"Filesystem in Userspace" (FUSE)可能是一个好主意。 FUSE wiki lists a lot of existing projects关于数据库支持的文件系统以及可以通过类似SQL的查询进行搜索的文件系统。
答案 3 :(得分:0)
答案 4 :(得分:0)
你问这个问题已经有一段时间了。我很惊讶没有人提出这个明显的建议。查看大型机和迷你,尤其是iSeries-OS(现在称为IBM-i,称为iOS或OS / 400)。
如何将关系数据库作为海量数据存储相对容易。 Oracle和MySQL都有这些。问题是它对于最终用户应用程序必须基本上无处不在。
因此,应用转化的步骤如下:
1)普通分层文件系统中的所有内容
2)数据库中具有轻元数据的BLOB中的数据。带有一些目录信息的文件。
3)BLOB中的大数据,在数据库中具有大量元数据和复杂结构。具有与之关联的实质元数据的文件,其基本上可以理解结构。
4)在对象中暴露的BLOB的内部结构< - >具有广泛元数据的关系图。虽然可能存在可导出的表单,但应用程序自然可以与数据库一起使用,因为存储库丢失了文件的概念。答案 5 :(得分:0)
如果您使用Python,那么请查看SpiderOak的Transactional Storage System:
支持大多数典型文件的python可访问文件系统API 操作(目录,文件夹,文件创建,阅读,写作, 具有事务容错的搜索,重命名等。您可以 打开文件系统,执行任意数量的修改,然后 以原子方式提交或回滚所有更改。这让我们建立 SpiderOak使用简单的传统文件对象作为容器。用途 SQLite内部作为存储系统,因此保留了整个 单个磁盘文件中的文件系统。是多进程和 线程。