【问题标题】:How would you build a database filesystem (DBFS)?您将如何构建数据库文件系统 (DBFS)?
【发布时间】:2010-10-29 19:11:56
【问题描述】:

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

【问题讨论】:

  • 我有一些想法,但更愿意离线讨论。你还有兴趣吗?
  • 虽然我仍然认为这个想法很重要,但我已经转移到一个大型项目,我已经对用户隐藏了文件系统,因此文件元数据的问题不是对他们可见。不是一个了不起的解决方案(不能很好地使用工具),但比用户不友好的操作系统更好。我真的没有时间投资这样的项目,所以我不会有任何真正的帮助。也就是说,我很高兴看到你想出什么,所以请在这里告诉我们!
  • 我很惊讶这个不是百分之一没有歧义的问题还没有结束。
  • 请注意 - Oracle 拥有几项涵盖该想法的专利。这些专利已于 2000 年左右颁发。因此,如果您打算实施这样的事情,请小心并与律师核实,您将来如何避免来自 Oracle 的专利诉讼。

标签: database linux operating-system filesystems bsd


【解决方案1】:

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

【讨论】:

  • 没见过。很有趣!
  • 是的。我将它用作我在 Windows 中构建的 DBFS 的参考。
【解决方案2】:

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

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

在 Windows 上,您可以使用 IFS

【讨论】:

    【解决方案3】:

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

    可能,正如 Osama ALASSIRY 所提到的,使用 "Filesystem in Userspace" (FUSE) 是一个好主意。 FUSE wiki lists a lot of existing projects 关于数据库支持的文件系统以及您可以在其中通过类似 SQL 的查询进行搜索的文件系统。

    【讨论】:

      【解决方案4】:

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

      它是basic overview 架构的basic overview

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

      【讨论】:

        【解决方案5】:

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

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

        所以应用转换的步骤是:

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-16
          • 2011-10-06
          • 1970-01-01
          • 2012-12-17
          • 1970-01-01
          • 2010-11-12
          • 2021-04-02
          • 2019-07-15
          相关资源
          最近更新 更多