取代文件系统的时候到了

2022-02-25 19:39:37

如果您忘记了在文件系统中存储文件的位置,您知道找到它可能是一个真正的挑战。文件系统允许您将任何文件存储在任何文件夹中,而不管文件夹路径是否适合该文件。即使您记得文件名的某些部分,也可能需要很长时间才能在大型文件夹树中搜索它。有时,当你点击“保存”按钮时存储它的应用程序甚至懒得告诉你它放在哪里。

文档、照片和其他常见类型的文件通常有几种不同的格式(以及随附的文件扩展名),因此按文件扩展名搜索可能会或可能不会找到您要查找的文件。文件系统也被设计为只知道其管理卷中的文件,因此即使在同一物理硬盘驱动器上存储了多个相同文件系统类型的卷(例如NTFS或Ext4);必须独立搜索每个卷。

查找文件所需的时间通常取决于系统中还有多少其他文件。就像在干草堆中找到一根针一样,它实际上取决于干草堆的大小,当计算出找到针可能需要多长时间时。

文件系统是几十年前发明的,当时最大的物理驱动器以兆字节为单位,只能存储几百个文件。今天的硬盘驱动器(HDD)和固态驱动器(SDD)的测量单位是TB(大几百万倍)。硬盘制造商最近宣布,硬盘容量将超过20TB。如果文件的平均大小为100000字节;这意味着您可以在驱动器满之前存储大约2亿个文件。那是一个大草堆!

尽管多年来对文件系统进行了大量改进;它们仍然基于几十年前相同的基本架构。它们的设计目的不是对文件进行分类,并快速搜索单个文件或文件组。有助于搜索的应用程序仍然需要使用顺序搜索函数(例如findNext或readdir)进行分层树遍历,这些函数本质上比较慢。

拥有独立的索引服务,如微软的Windows搜索或苹果的Spotlight,可以大大加快搜索速度;但它们不是文件系统不可分割的一部分,因此它们必须将索引信息存储在单独的数据库中。数据库很容易与文件系统失去同步。此外,为了加快索引过程,用户通常只为文件系统的一部分编制索引,因此使用索引可能不会显示您要查找的文件。

快速搜索只是困扰当今文件系统的问题之一。作为一个自20世纪80年代以来一直从事文件系统和数据库工作的人,我提出了一长串数据存储系统应该做得更好的事情。许多问题都无法通过对现有文件系统体系结构的微小更改来解决。我相信是时候用更好的东西完全取代文件系统了!

为了简洁起见,我不会在本文中列出所有问题,而是将其限制在我的“前五大”问题上。我设计并开发了一个名为“Didgets”的新系统,我认为它解决了这些问题和许多其他问题。DIDGET(数据小部件的缩写)是智能数据对象,可以有效地管理大量非结构化或结构化数据。无论文件系统被Didget或其他类似系统取代,这些问题都将持续存在,直到这些问题得到解决:

每个文件的固定大小元数据记录太大。读取和缓存整个文件表需要的时间太长,占用的内存太多。

元数据记录没有文件分类系统。要确定文件中的内容,必须检查文件名或数据流。

文件系统没有一个统一的标签系统,应用程序可以轻松快速地搜索该系统。

每个文件的唯一标识符是其完整路径名。如果名称更改或文件被移动到其他文件夹,则存储的对该文件的任何引用都将无效。

无法保护文件免受恶意代码的攻击。病毒检测软件必须检查每个文件,以确保系统安全。

每个文件系统都有一个文件表,用于存储每个文件的记录。在流行的文件系统中,此记录的大小可以从256字节(Ext4)到1024字节(NTFS)。这意味着,如果表中有2亿条记录;然后,如果你想进行大量快速搜索,就必须读入并缓存50GB到200GB的数据。磁盘传输速度肯定提高了,内存比以往任何时候都便宜,但这仍然是大量的数据。在Didgets中,每条记录只有64字节,这意味着一个有2亿条记录的表的总容量不到13GB,这更易于管理。

对于Didgets,它的元数据记录中有一个小字段,用于判断文件是照片、文档、视频还是其他类型。搜索速度可能非常快。在我的显影机上,我可以在2秒钟内找到所有2000万张照片(2亿个文件中)。如果必须比较文件扩展名,这样的快速搜索是不可能的。

文件系统使用文件夹名称作为组织数据的一般方式。有些文件系统支持扩展属性等功能,可以将标签附加到文件中。它们都不能使基于元数据标记的文件查找变得简单快捷。Didget允许您将多达255个标记附加到任何Didget上,并在几秒钟内找到所有共享一个公共标记的标记。

Didget的唯一标识符是64位数字。它在那个傻瓜的一生中始终保持一致。当您为其指定不同的名称(名称只是另一个标记)或将其放入不同的列表(例如文件夹)时,它不会改变。任何存储的对Didget的引用在被删除之前保持有效。

与文件不同,Didget的数据流可以是永久不变的。文件系统只读属性只是对任何应用程序的建议,它们可以忽略它。对于didget,不可变属性由系统强制执行,无法绕过。任何应用程序都不能修改只读Didget的内容,无论它可能拥有何种用户权限。

如果HDD和SDD的容量继续保持在当前的轨道上,在未来十年内,存储系统的平均用户容量可能会超过100TB。文件将被永久保存,如果文件系统不被更好的东西取代,查找单个或一组文件将变得更加困难和耗时。