一种基于目录级可伸缩的BloomFilter位图表的并行文件搜索方法

文档序号:6402701阅读:172来源:国知局
专利名称:一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法
技术领域
本发明公开了一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法,涉及面向当前大规模文件系统搜索的解决方案,属于计算机技术领域。
背景技术
文件系统的搜索功能是文件系统研究领域中的一个重要方向,尤其当前进入了大数据时代,文件系统的规模是十分庞大的,传统的文件系统的设计结构采用分层的结构,给当前的大规模文件搜索带来了限制。文件系统的搜索功能就是快速准确的定位到满足搜索条件的文件,快速准确的为用户和管理员提供搜索结果,提高文件系统的使用和管理效率。传统的文件系统设计采用的是分层设计结构,使用强力搜索遍历整个目录空间,由于当前文件规模变得十分庞大,进而造成巨大的目录规模,文件搜索时间变得十分冗长,针对这种情况,在大规模文件系统的元数据搜索研究领域中,许多学者进行了大量的研究,提高大规模的文件系统搜索性能。在基于元数据索引结构搜索方面,近来研究的搜索系统依赖索引去提高性能,文件搜索只需执行一个索引查询,并非遍历整个文件系统。这种方法被桌面搜索和小规模企业文件系统搜索应用程序所采用,例如,苹果公司的Spotlight Server、Google公司的 Google Desktop、Fast 公司的 A Microsoft Subsidiary、Google 公司的 GoogleEnterprise,上述这些公司的产品都采用了元数据索引结构进行搜索。这些应用程序由一般性的关系数据库和一个倒排索引构成。它们在文件系统外部作为一个独立的应用程序使用,弥补了文件系统缺乏的搜索支持,可以快速准确的为用户提供搜索功能,定期的利用爬虫技术去收集新的文件改变,更新自己的索引。当前在使用硬件提高搜索性能进行了大量的研究,大规模的文件系统搜索要求检索几十亿个属性和关键值,大规模的搜索引擎使用专用的硬件去达到高的搜索性能,Google和Yahoo !采用了专门的硬件提高了搜索性能。上述基于元数据索引结构的搜索工具位于文件系统之外。针对当前主流分层文件系统的设计架构的限制,为了更好的搜索文件,研究者提出了采用语义相关性技术,是一种扩展分层结构的方式,可以动态的从文件中提取文件属性组成虚拟目录,目录空间是基于属性和语义含义被组织的,Google公司的PageRank,基于网页之间的语义关联性,推断出所搜索的网页的重要性,学术界的Connections抽取文件之间的时间关系,例如两个源代码文件被同时打开,被用作语义连接,基于这些语义连接,Connections建立一个图模型,这个图模型去排序从文件系统搜索引擎得到的结果。基于语义相关性的文件系统是一种扩展性的方式去组织和搜索文件,在当前文件系统的数据量激增的状态下,可以提高文件搜索的准确率,它们仅仅关注的是接口和查询语言,并且使用一般目的的索引结构,例如B-trees或者数据库。当前有的学者提出了基于采样的文件搜索方法,通过对各分支进行采样打分,通过对分值的判定,达到快速得剪切 目录分支,缩小分层目录的搜索范围,加快了搜索速度。采样技术在数据库中得到了广泛的应用,Huang.H.H等人首次将其应用在文件系统中,通过阈值与各分支分值相比,进行分支剪切,提高搜索效率。基于事件通知的搜索方法也是一种有效的搜索方法,Masanori Takata等人提出利用时间通知机制来将缓存中的不活跃文件换出,提高缓存的使用率。采用文件系统事件通知每天机制产生一个伪LRU列表,这个伪LRU列表有相对应的文件生成的时间信息,当一个客户端生成文件时,文件系统的时间通知探测文件的生成时间,并且将这个文件目录路径放进最近的伪LRU列表中,通过查询最古老的列表并检查列表文件的时间戳从而找到被换出的文件。针对当前文件系统的搜索的研究,研究者提出了各种搜索方法,基于索引结构的搜索方法可以进行快速的文件搜索,但是需要庞大的系统开销,降低了 I/o性能;基于采样的方法不要额外的存储和系统开销,但是当采样不准确时,降低了文件搜索的准确性;基于语义搜索提供了良好的接口和查询语言,但是没有考虑下面搜索算法的性能,并且有时候也需要维护一致性的需求;基于事件通知的方法虽然相比索引结构占用少量的存储空间,并且具有很高的准确率,但是当文件规模十分庞大时,仍需要很大的存储空间;同时现有的研究算法都没有考虑多元数据服务器的环境。

发明内容
1、目的:本发明的主要目的是提供一种大规模文件系统的搜索方法,针对当前搜索过程中的三个性能因素(搜索开销、准确率、搜索速率)难以同时满足的缺点,它实现了基于目录级可伸缩的BloomFilter位图表,从而能够占用少量空间进行快速缩小搜索范围,并且提高准确率;针对多元数据服务器,利用BloomFilter结构,采用分布一聚合(Map-Reduce)架构加快搜索速率。2、技术方案:为了达到实现上述方法,本发明的技术方案是这样的:如图一所示,本发明一种基于目录级可伸缩的BloomFilter位图表的并行文件搜索方法,该方法包括以下步骤:步骤101:通过BloomFilter将文件系统的树形目录空间转化为扁平化结构;步骤102:当树形目录空间转化为扁平化结构后,多元数据服务器并行化搜索;其中,步骤101,通过给树形目录空间中的每个节点的每一维属性建立可伸缩的Bloom Filter位图表,不同节点的相同维的位图表通过链表链接起来,将树形目录空间转化为扁平化结构。其中,步骤102,由于通过应用BloomFilter将树形目录空间转化为扁平化结构,去除了关键路径,文件搜索请求可以在多元数据服务器上进行并发搜索,提高了搜索效率。3、优点及 功效:本发明所公布的基于目录级可伸缩的BloomFilte位图表的并行文件搜索方法,与现有的搜索技术相比,其主要的优点是:(I)基于BloomFilter表的搜索,是一种轻量级的搜索方法,占用极少量的存储空间,通过对Bloom Filter表的判断,可以迅速缩小搜索范围,并且达到了百分之百的准确率;通过应用BloomFilter,将隐藏在下层的元数据信息浮现到目录空间的上层节点;(2)基于BloomFilter表的目录结构,将树形的目录结构转化为扁平的结构,消除了树形结构的关键路径的瓶颈问题,为多元数据服务器的并行化搜索提供了条件,极大的提高了搜索速率。


图1为基于可伸缩的BloomFilter并行化搜索的整体框架图;图2为基于BloomFilter的目录层结构扁平化结构转化图;图3为多元数据服务器并行化搜索示意图;图4单一元数据服务器搜索流程图;图5多元数据服务器Map-Reduce处理流程图。
具体实施例方式为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。本发明一种基于目录级可伸缩的BloomFilter位图表的并行文件搜索方法,如图1所示,该方法包括以下步骤:步骤101:通过Bloom Filter将文件系统的树形目录空间转化为扁平化结构;在单元数据服务器上转化树形目录空间(图2),(201)给目录空间中的每个节点中的每一维属性都建立一个BloomFilter位图表,通过BloomFilter位图表中的O和I比特位的判断,可以判断本节点所包含的子节点的属性。(202)通过BloomFilter将原本隐藏在下层节点的元数据属性浮现在上层节点,通过在上层节点迅速判断目录空间的分支是否满足搜索条件,从而达到可以快速剪切目录空间的效果,并且通过BloomFilter将树形目录空间转化为扁平化结构,去除树形结构的关键路径的限制。步骤102:当树形目录空间转化为扁平化结构后,多元数据服务器并行化搜索;在多元数据服务器环境中(图3),(301)客户端将搜索请求通过分布一聚合(Map-Reduce)框架将搜索请求发送给所有的元数据服务器,客户端在分布(Map)阶段向元数据服务器集群群发搜索请求。(302)由于目录树空间采用Bloom Filter位图表,将树形结构的目录空间转换为扁平化的结构,为并行化搜索提供了条件,通过Map-Reduce并行化框架将搜索请求群发到所有的元数据服务器上,并行化搜索提高了搜索效率。由上述可看出本发明的主要思想是,首先通过(101)将元数据服务器中的树形目录空间转化为扁平化结构,将隐藏在底层的元数据属性值浮现在目录空间中的上层节点,并且通过Bloom Filter可以达到迅速缩小搜索范围,然后(102)由于树形目录空间被转化成扁平化结构,去除了树形结构中的关键路径的限制,使多元数据服务器并行化搜索成为可能,加快文件搜索速度,提高了搜索性能。本发明在软件上,对操作系统要求为Linux系统,运行在Linux机群中提供文件10服务的软件之上,如PVFS (Parallel Virtual File System)并行文件系统;并且在该文件系统中,配置多台服务器,并且要求元数据服务器有多台,其他为数据服务器。下面详细说明文件搜索流程:一台元数据服务器上面的搜索操作( 图4),首先(401)元数据服务器接收客户端发来的请求,然后(402)在当前目录节点上面的元数据属性的BloomFilter位图表上进行搜索,接着(403)通过BloomFilter位图表判断当前目录节点下的分支是否满足搜索条件,如果满足搜索条件(405),继续搜索下层分支目录节点的BloomFilter进行判断,如果不满足搜索条件(404),则将当前分支剪切,搜索目录树中同一层次的其它分支,最后(406)得到满足条件的数据将其返回给客户端。在多台元数据服务器并行化搜索(图5),利用Map-Reduce管理并行化搜索,首先(501)客户端利用第一次Map将请求发送给所有的元数据服务器,在多元数据服务器,每台服务器通过图4流程的搜索,然后(502)利用第一次聚合(Reduce)阶段返回给客户端满足条件的BloomFilter位图表,接着(503)客户端将第一次的分布一聚合(Map — Reduce)的后分析的结果作为第二次分布(Map)发送给满足条件的元数据服务器,经过图4流程的搜索,在第二次Reduce阶段返回给客户端之前,进行数据量的判断(504),如果数据量小,则第二次聚合(Reduce)阶段将最终结果返回给客户端,如果数据量大,则第二次聚合(Reduce)阶段将一部分属性返回给客户端,再接着,当数据量大的情况,客户端经过对第二次聚合(Reduce)阶段的数据分析,经过第三次分布(Map)阶段将请求发送给满足条件的元数据服务器中,最终得到搜索结果,最后(506)将最终结果返回给客户端。应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范 围当中。
权利要求
1.一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法,其特征在于: (1)在单台元数据服务器中,基于目录级可伸缩的BloomFilter位图表的文件搜索方法缩小搜索范围 首先,基于Bloom Filter位图表快速搜索技术,建立基于目录级可伸缩的BloomFilter位图表的文件搜索方法,通过对树形目录结构中的目录节点的每一维属性建立可伸缩的Bloom Filter位图表,利用位图表中的O和I比特位来管理下层目录是否存在所要搜索的文件,达到通过占用少量的存储空间,提供快速而准确的文件搜索方法,将文件树形目录结构转变成扁平化结构,文件的属性值不再隐藏在底层;然后,将每一维文件属性的基于目录级可伸缩的Bloom Filter位图表通过基于链表的技术组织起来,形成一个链表形式的目录级可伸缩的Bloom Filter位图表;最后,针对多维属性中的每一维属性都组织成上述描述的链表形式,将整个树形的目录空间转变成扁平化结构,通过基于目录级可伸缩的Bloom Filter位图表可以快速准确的在目录结构中缩小搜索范围。
(2)在多元数据服务器中,进行并行化快速搜索 在多元数据服务器环境中,由于树形目录空间转化为扁平化结构,首先,基于采用类似于Map-Reduce框架,建立多元数据服务器并行化搜索算法,达到多元数据服务器文件系统快速搜索,极大的提高了搜索速率;然后,针对Top-K搜索,将用户的搜索请求广播到所有的元数据服务器上,多个元数据服务器同时进行搜索,用户搜素请求的数据量较小时,通过两次Map和Reduce的操作迭代过程可以到搜索结果,第一次Map和Reduce阶段返回目录结构中各分支满足搜索条件的位图表的部分给客户端,第二次Map和Reduce阶段通过输入第一次结果,返回满足搜索条件的具体的属性给客户端,当用户搜索请求的数据量大时,通过三次Map和Reduce的迭代操作过程可以得到搜索过程,在第二次Map和Reduce阶段由于数据量大,为了减少系统开销先返回属性值到客户端,在客户端处理后,作为第三次Map和Reduce的输入,第三次Ma p和Reduce后,返回属性到客户端;最后,针对Range搜索,通过一次Map和Reduce的操作过程可以得到用户的请求结果,在Map阶段获得了目录结构各分支的满足搜索条件属性值的范围,在Reduce阶段在客户端得到满足搜索条件的属性范围。
全文摘要
本发明针对当前大规模文件系统搜索存在准确率低下、额外开销大等问题,采用轻量级的存储技术,公开了一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法。通过基于目录级可伸缩的Bloom Filter位图表的搜索算法,快速缩小了目录结构的搜索范围,位图表只占用少量的系统资源,可以快速得缩小目录结构的搜索范围,提高了系统搜索性能。基于目录级可伸缩的Bloom Filter位图表的搜索算法,树形目录结构转化扁平化结构,为并行化搜索提供了基础,通过基于Map-Reduce框架达到并行化搜索,大大加快了搜索速率。根据应用需求,该方法克服了搜索准确率低、额外负载开销大技术难题,同时兼顾了高准确率和低开销的优点。因此,本发明具有高准确率和低额外负载开销,广阔的应用前景和可产生显著的经济效益等特色。
文档编号G06F17/30GK103226608SQ20131015713
公开日2013年7月31日 申请日期2013年4月28日 优先权日2013年4月28日
发明者肖利民, 霍志胜, 李秀桥, 谢柯, 阮利 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1