Hierarchical File Systems are Dead——论文泛读

HotOS 2009 Paper 分布式元数据论文阅读笔记整理

问题

文件系统一直采用分层名称空间,随着用户与越来越多的数据交互,并且对搜索能力的要求越来越高,这样一个简单的分层模型已经过时了。例如,查找照片时,用户描述他们想要的内容(照片的各种特征)而不是照片所在的位置(照片在文件系统中的完整路径名)来查找数据。

因此应该重新设计文件系统,将其组织映射到我们现在访问和操作数据的方式。

本文工作

本文提出了一种新的文件系统体系结构 hFAD,用标记的、基于搜索的名称空间取代了分层名称空间。

在最低级别上,使用基于对象的存储设备(OSD)[14],存储对象有唯一的ID,系统的高层通过ID访问这些对象。对象是可字节访问的:可以从对象中读取字节,可以将字节插入对象的中间,可以从中间删除字节等。内部hFAD使用基于搜索的API,索引结构包含可扩展的索引集合,便于多种命名模式和搜索类型。

API

命名接口:对象由一个或多个标记/值对进行命名。标记告诉hFAD如何解释该值,以及在多个索引中的哪个索引中搜索该值。例如,我们支持将POSIX命名为本机API之上的薄层。POSIX路径P上的命名操作转换为对标记/值对的查找:POSIX/P。对搜索项S1、S2、…Sn的全文搜索转换为对形式为FULLTEXT/S1、FULLTEXT/S2等的标记/值对的矢量的命名操作。这种操作的结果是矢量中每个元素的索引查找结果的总和。命名操作可以返回多个项目(这些项目将以未指定的顺序返回)。此外,任何查询都不需要唯一地定义数据项。只有OSD层中数据的标识符必须是唯一的。

访问接口:与标准文件系统一样支持读取和写入,还可以支持插入和删除操作,能够插入到对象中间,并从文件中的任何位置截断。添加了insert和truncate调用。读写调用与POSIX兼容,便于支持遗留应用程序。插入调用采用与写入调用相同的参数,但它不会覆盖文件中间的字节,而是将这些字节插入到适当的位置,使文件增加插入的字节数。截断也有类似的扩展。POSIX截断从文件末尾截取一个带有要截断的字节数的off_t,而hFAD则截取两个off_t(偏移量和长度),准确地指示要从文件中删除哪些字节。

索引存储

使用可扩展的索引存储,以便于对丰富的数据类型进行高效搜索。给定一个或多个类型/值规范,索引存储的集合必须返回与搜索项匹配的对象ID列表。我们认为高效访问需要多种索引方法。例如,键/值存储足以用于简单属性,但不足以用于全文,并且全文索引和键/值存储器都不太可能适用于图像索引。因此我们确定了几种类型的标签,表1显示了不同的用例如何在请求中使用不同类型的标签。索引存储层被设计为支持多个索引。虽然关键字和路径名可能很容易存储在同一索引中,但我们希望保留用任意索引类型扩展hFAD的可能性,例如图像、声音等的索引。一个特殊的标签ID表示该值实际上是一个唯一的对象ID,支持应用程序内的对象引用缓存。

总结

本文提出一种新的文件系统体系结构 hFAD,便于普通用户使用的文件系统,用标记的、基于搜索的名称空间取代了分层名称空间。(1)对象命名时使用多个标记+值命名,便于用户通过不同标记进行搜索。(2)对象访问时额外支持插入和部分删除,允许用户直接对字节操作,在对象中间插入或删除数据。(3)存储部分使用索引存储,根据标签构建多个索引。

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值