是否存在广泛的文件系统来表示具有针对快速查找而优化的结构的目录?

是否存在广泛的文件系统来表示具有针对快速查找而优化的结构的目录?

在《Unix 编程的艺术》中,主题是术语信息数据库我读:

如果您查看 terminfo 目录,您将看到由单个可打印字符命名的子目录。每个下面是名称以该字母开头的每种终端类型的条目。该组织的目标是避免对非常大的目录进行线性搜索;在更现代的 Unix 文件系统中,这些文件系统表示具有 B 树或其他为快速查找而优化的结构的目录,子目录将不是必需的。

我想知道是否存在具有这种质量的广泛(即生产就绪)文件系统。

答案1

有几种,例如 ext4、Microsoft 的 NTFS、Apple 的 HDF+ 或即将推出的使用 B-Tree 的 btrfs。还有使用 B* 树(B 树的更密集版本)的 HDF 和 Reiser4。

答案2

ext3 文件系统也使用哈希(debian-user 中的讨论)。然而,恕我直言,这可能会产生不好的后果,至少对于传统硬盘来说:这会破坏磁盘上一些可能的规律性/局部性。例如,当目录中一个接一个地创建文件时,按目录顺序读取这些文件可能会非常慢(请参阅我做过的一些测试)。这显然就是为什么穆特邮件用户代理在读取 maildir 文件夹时按 inode 进行排序(提交 f2eef427,旧变更集 3828)。

相关内容