文件存储与搜索技术浅析

时间:2022-10-31 14:57:39

中国传媒大学 朱立谷

随着信息技术的不断发展,文本文件、页面、电子邮件、音乐、电影等众多不同类型信息的存储需求呈现爆炸性增长。存储系统在数据存储的可靠性和性能方面是比较有效的,但是随着存储系统的容量不断增大,存储信息的数量和类型不断增加,信息的检索和管理会变得越来越困难,这与互联网环境形成了鲜明的对比。随着搜索引擎的不断发展,在互联网的环境下寻找信息十分方便。用户如何在存储系统中找到想要的信息比在互联网上查找信息更加困难。

传统文件系统效率不高

  几乎所有的文件存储系统都是基于文件系统的,文件系统与操作系统是密不可分的整体。文件系统由文件和目录组成。数据按其内容、结构和用途组成若干命名的文件。目录构建了文件系统的层次化化结构。用户创建子层次以便对文件进行分类。文件系统可以有效地组织文件,一个目录下的子目录或者文件的名字是惟一的,这就保证了文件的全路径名称不会同时指向两个或者更多的子目录或者文件。

  根据什么来建立层次结构并没有一个很有效的方法,在考虑文件安全和文件共享时,层次结构的缺陷更加明显。比如,一个文件在网络上进行共享时,会把这个文件复制到一个公共目录下面,同时设定好公共目录的访问权限,这样一个文件就会在两个不同的层次结构中有着两份拷贝,会给文件的管理带来很大不便,特别是在文件的数量不断增加的时候。

  另外,层次化结构使得文件访问的效率不高。比如,目录隐藏了它包含的内容,并且目录下可能还有一层又一层的子目录,用户很难知道一个目录下面到底有什么东西,访问某个文件必须通过层次型的目录树结构到达文件的保存位置,如果不知道文件保存位置,就必须遍历整个目录或使用操作系统的搜索功能,而操作系统仅能依靠文件名来检索和查找数据。

  语义文件系统高效可靠

  在过去十几年中,文件系统技术并未进行大的变革,而新数据类型(如多媒体、电子邮件)不断出现,包括了丰富的元数据。没有给予元数据信息足够重要的位置,存储在文件系统中的数据都缺乏语义支持,因此存储系统不能提供高层的基于语义的关联式数据存取。正因为认识到现有文件系统的不足,学术界和工业界做了大量工作,研究如何提高文件的管理和搜索效率。其中,最重要的研究成果是语义文件系统,它可以充分利用文件的元数据信息进行文件浏览与搜索。

     语义文件系统利用元数据抽取工具获取更多的元数据,记录用户活动,并采用手工或其他方法对文件进行标注,最后将这些信息结合起来实现统一元数据。通过元数据信息在非结构化文件和数据库数据之间建立起链接,存储系统可以实现快速的基于文件属性的文件系统访问。

     语义文件系统提供新的规则,即相关性的访问方法。相关性访问是基于内容访问的特性,供一种灵活的关联方式来存取文件。文件属性由转换器从特定类型文件中自动抽取,表达为 Hkey和Valuei对。同时,语义文件系统又引入了虚拟文件夹的概念。在虚拟文件夹中,一个使用者可以进行基于属性的搜索,系统在结果集中创建一组文件的符号连接,提供跨越目录层次的文件存取通路。比如WinFS和Spotlight的虚拟文件夹,虚拟文件夹可采用XML格式的文本文件进行表示,内容是对数据库进行查询后返回的结果组成的列表,包含了指向符合某种规则的文件或文件夹的链接。在占用更多存储空间的情况下,语义文件系统可轻易实现一个文件同时放在几个不同的目录层次下面。

  语义文件系统可对文件进行高效分类。比如,基于用户空间文件系统(Filesystem in Userspace,FUSE)的TagFS采用智能标签(Smart Tagging)机制,可以动态地让数据文件具备特定的标签,而加了标签的数据文件能依据用户的喜好与意图分类,并依据权重排序后呈现。

   语义文件系统便于用户对数据文件进行高效地搜索。逻辑文件系统 (LISFS)使用一个数据库为系统的文件提供搜索功能。数据库表由从关键词到对象的映射组成。目录的内容是一个符合查询条件的对象集。苹果计算机的Spotlight是一个元数据和内容索引系统,并集成在HFS文件系统中。WinFS的元数据被储存在一个数据库中,而Spotlight的索引内容和搜索结果也保存在数据库中。Linux也有一个与Spotlight类似的系统,称为Beagle。Beagle利用一个内核中的文件系统事件服务Inotify,为新文件类型提供一个即插即用的基础架构。

   集成数据管理与搜索

   尽管语义文件系统在文件的存储和检索方面做了很多优化工作,相关方法也获得了广泛认可,但是其层次化的本质并没有改变,语义文件系统只是层次化文件系统的重要补充技术。

   一种新思想是把文件存储与Web结合起来,Web通过加入链接来传达信息。一般情况下,在Web和超文本文件中,链接可以让使用者从一个文件自动跳转到另一个文件。链接可以通过语义Web进行扩展。

  为了使语义Web成为可能,W3C制订了各项标准,为HTML和HTTP在某种程度上的标准化提供一个可行的途径。语义Web标准组分成不同层次,URI和Unicode在底部,XML、名字空间和样式作为自描述文件层在中间,RDF在顶部。RDF为各种应用提供了一个通用的元数据框架。

  此外,语义Web增加了对内容进行处理的能力,并引入了另外两个概念,即知识导航员和联邦知识或数据库。因此,语义Web可能成为一个容易获得的万能图书馆。

  如果使文件存储变成Web的一部分,文件的存储和搜索可能会产生一次变革。基于这种思想,我们正在开发语义网络存储(Semantic Network Storage,SNStor)系统,目的是提供丰富的元数据结构和构建一个在线文件系统。为了解决基于Web的文件存储系统的性能问题,我们准备采用更快的数据结构--平衡树来取代多种链接列表,还要采用压缩文件,才能实现高效存储。此外,我们还在研究使用容错数据结构,以增加存储的可靠性和可用性,如开发一致性检查程序以提高可用性。

   文件数量的高速增长预示着,市场对高效率文件存储系统的需求会急剧增长。那些可以将数据管理和搜索功能集成在一起的文件存储系统,可以提高存储效率,并减少存储成本,一定会受到用户的热烈欢迎。