CN104657460B - 一种基于大规模文件系统负载特征关键字的文件搜索方法 - Google Patents

一种基于大规模文件系统负载特征关键字的文件搜索方法 Download PDF

Info

Publication number
CN104657460B
CN104657460B CN201510068158.7A CN201510068158A CN104657460B CN 104657460 B CN104657460 B CN 104657460B CN 201510068158 A CN201510068158 A CN 201510068158A CN 104657460 B CN104657460 B CN 104657460B
Authority
CN
China
Prior art keywords
keyword
search
posting
subregion
directory tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510068158.7A
Other languages
English (en)
Other versions
CN104657460A (zh
Inventor
肖利民
霍志胜
钟巧灵
阮利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201510068158.7A priority Critical patent/CN104657460B/zh
Publication of CN104657460A publication Critical patent/CN104657460A/zh
Application granted granted Critical
Publication of CN104657460B publication Critical patent/CN104657460B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明针对当前大数据环境中文件系统搜索方法存在的额外开销大、搜索准确率低,以及当前搜索方法没有充分考虑大规模文件系统搜索负载特征的问题,公开了一种基于大规模文件系统负载特征关键字的文件搜索方法,提高搜索性能,加快搜索速率。包括以下步骤:(1)将目录树空间进行水平划分,并且在每一个分区内聚集关键字的Posting项,将整个关键字的Posting列表分隔在每个分区内;(2)在目录树水平分区的基础上,将目录树分区按照子树方向进行分区,进一步减小关键字的Posting列表的长度;(3)使关键字列表顺序地存储在磁盘上面,并且基于用户搜索的局部性,再一次将高频率访问的关键字Posting列表分区。

Description

一种基于大规模文件系统负载特征关键字的文件搜索方法
技术领域
本文公开了一种基于大规模文件系统负载特征关键字的搜索方法,涉及大数据环境中文件系统搜索面临的挑战,属于计算机技术领域。
背景技术
“大数据”成为信息技术领域的重点研究内容和发展方向。很多国家均把应对大数据问题带来的挑战提高到国家战略层次,美国政府于2012年3月启动了“大数据研发计划”,我国多个基础研究科技计划如973计划、国家自然科学基金等也将大数据相关研究列入项目指南。大规模文件系统是实现大数据存储的重要技术途径之一,当前大型数据中心,计算中心等信息基础设施普遍采用大规模文件系统组织和管理数据,向上层用户和应用程序提供对存储资源的统一访问服务。在大数据环境中,从大规模文件系统中快速精确得找到满足用户和应用程序的数据是当前面临的主要问题。
目前大规模文件系统中的文件数量规模达到百万级别,预计到2015年,文件系统所管理的文件数量规模可达到万亿级别。由于文件系统采用传统目录树方式管理与组织文件,即文件分布到不同层次的目录中进行管理;同时,文件系统按照某种元数据分布算法将文件数据分配到不同的元数据服务器中,元数据保存了每个文件的多维属性信息,用于支持文件系统的管理以及启动等操作。但是当前文件系统的组织形式,仍然基于目录树的形式,在文件数量十分小的情况下是十分有效的,但是由于当前文件数目规模十分庞大,这种目录树组织方式对文件系统的搜索效率是十分低下的。针对上述文件系统搜索的问题,许多学者进行了大量的研究,提出了基于元数据索引的搜索方法、基于采样的文件搜索方法等。虽然上述方法加快了搜索速率,但是仍然存在的一定的缺点,例如基于元数据索引的方法需要昂过的硬件作为支撑,需要专门的机器集群进行元数据索引的搜索,并且在维护一致性上面会带来额外的开销,而基于采样的方法虽然没有带来额外的开销,但是由于采样技术本身的原因,搜索的准确率是会受到影响的。
上述搜索方法都没有考虑搜索负载的特征,当前的负载研究表明,大量的文件集中在一定的目录深度中,并且用户的访问集中在少量的目录及一定目录深度中,少量的客户占大部分的IO请求,小部分的文件占大部分的访问,并且用户的搜索请求在目录树中呈现出局部性特征,用户的搜索的负载特征对搜索速率起着至关重要的作用。
针对当前文件系统搜索方法研究现状,并且针对没有考虑当前文件系统的负载特征的问题,研究新型的文件系统的搜索方法在学术和工业实践上具有重要的意义。
发明内容
1、目的:
本发明的主要目的是提供一种基于大规模文件系统负载特征关键字的文件搜索方法,针对当前搜索方法中遇到的问题(例如,需要额外的硬件以及准确率低),以及没有考虑当前负载呈现的特征,实现了基于负载特征的关键字搜索方法,提高文件系统的搜索性能。
2、技术方案:
为了达到实现上述方法,本发明的技术方案是这样的:
一种基于大规模文件系统负载特征关键字的文件搜索方法,基于搜索目录树空间的局部性特征进行目录树空间的分区以及关键字Posting列表的分割,包括以下步骤:
(1)根据搜索负载在目录树空间水平聚集的特征,将目录树空间进行水平划分,并且在每一个分区内聚集关键字的Posting项,从而将整个关键字的Posting列表分隔在每个分区内;
(2)根据用户搜索的子树局部性特征,在目录树水平分区的基础上,将目录树分区按照子树方向进行分区,使步骤(1)中的目录树分区变得更小,进一步减小关键字的Posting列表的长度;关键字的Posting列表进行再一次分割,成为更小的列表;
(3)通过上述基于分区的关键字Posting列表的分割,使关键字列表可以顺序地存储在磁盘上面,并且基于用户搜索的局部性,再一次将高频率访问的关键字Posting列表分区,快速缩小目录树搜索范围,提高搜索速率。
其中,步骤(1)和(2),通过搜索的局部性特征,降低了关键字的Posting列表的长度,在磁盘可以顺序存储,并且根据负载的局部性特征,可以迅速地缩小目录树搜索范围,加快了搜索速率;步骤(3),可以将高频率被搜索的相关文件位置信息缓存在内存中,加快了搜索速率。
其中,步骤(3)中,增加了一种优化方法,即基于一小部分占据着大部分的搜索IO请求的负载特征,进行基于阈值的关键字Posting列表的分割及缓存的方法,主要包括如下几个步骤:
(1)扩展posting项纪录文件被搜索的次数,设定相关阈值;
(2)通过阈值的判定将分区后的关键字的列表进一步分裂成更小的列表,高于阈值的Posting项组成一个新的列表,剩余的组成另一个列表;
(3)高频率被搜索的Posting列表缓存在内存中,提高搜索速率。
3、优点及功效:
本发明所公布的基于大规模文件系统负载特征关键字的文件搜索方法,与现有的搜索技术相比,其主要优点是:(1)不需要额外的硬件,降低了搜索的开销,并且提高了搜索的准确性;(2)考虑了当前大规模文件系统呈现出来的负载特征,基于负载特征的搜索方法的建立,其效率更高;(3)搜索快速地缩小了目录树搜索范围,提高了搜索效率。
1、利用大量文件集中在文件系统namespace中一定目录深度和用户的搜索请求集中在一定目录深度的负载特征,位于同一目录深度的关键字的Posting进行聚集,从而降低了关键字的Posting列表的长度;
2、根据用户搜索呈现出来的子树局部性特征,在关键字Posting列表水平分区的同时,进行按照子树局部性进行垂直分区,通过水平和垂直分区,将目录树空间分成很多小的区域,关键字Posting不再记录整个目录树空间的文件,而是关键字的Posting列表每个分区的区域中进行聚集,减少了关键字列表的长度,使关键字列表可以在磁盘上面进行顺序存储,提高了搜索的准确率;
3、当前的基于内容搜索的文件系统没有考虑文件系统的负载特征,小部分文件占大部分IO访问,为了进一步提高文件的搜索效率,扩展每个posting项用来记录被访问的次数,将上述关键字列表中的高于平均次数的posting项组成一个新的列表中,减小了posting列表的长度,进一步利用负载访问的空间局部性提高文件搜索性能,并且提高了更新的速率。
附图说明
图1为基于大规模文件系统负载特征关键字的文件搜索方法流程图;
图2为基于负载特征的水平目录分区的关键字Posting列表的划分示意图;
图3为基于负载特征的子树方向的关键字Posting列表的划分示意图;
图4为基于访问频度阈值的关键字Posting列表的划分示意图;
具体实施方式
使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
如图1所示,本发明一种基于大规模文件系统负载特征的关键字搜索方法,该方法包括以下步骤:
步骤101:根据搜索负载在目录树空间水平聚集的特征,将目录树空间进行水平划分,并且在每一个分区内聚集关键字的Posting项,从而将整个关键字的Posting列表分隔在每个分区内;
步骤102:根据用户搜索的子树局部性特征,在目录树水平分区的基础上,将目录树分区按照子树方向进行分区,使步骤(1)中的目录树分区变得更小,进一步减小关键字的Posting列表的长度;关键字的Posting列表进行再一次分割,成为更小的列表;
步骤103:通过上述基于分区的关键字Posting列表的分割,使关键字列表可以顺序地存储在磁盘上面,并且基于用户搜索的局部性,再一次将高频率访问的关键字Posting列表分区,快速缩小目录树搜索范围,提高搜索速率。
如图2所示,为基于负载特征的水平目录分区的关键字Posting列表的划分示意图。在元数据服务器上将目录树空间进行水平分区,包括步骤201-205,由于元数据负载特征在目录树中具有水平分层的局部性特征,从根目录开始在水平方向上对目录树进行划分,使其关键字的Posting列表在同一目录层中处于一个列表中,充分地利用了目录树负载的局部性特征。
将目录树空间进行水平划分,由于用户的搜索请求集中在一定的目录深度中,因此通过水平划分目录树空间,将关键字的Posting列表进行了分裂,减少了关键字Posting列表的长度,缩小了搜索范围,并且关键字的Posting列表可以在磁盘上面顺序存储,提高了搜索速率。
如图3所示,为基于负载特征的子树方向的关键字Posting列表的划分示意图。包括步骤301-305,元数据负载具有目录子树局部性访问特征,在上述水平划分目录树的基础上,按照目录子树进行划分,将关键字的Posting列表划分成更小的列表段,进一步提高了局部性,从而提高了搜索性能。
在水平划分目录的基础上,根据用户搜索呈现出来的子树局部性特征,在子树方向进一步划分目录树空间,形成更小的目录树区域,从而将关键字的Posting列表长度进一步减小,利用搜索负载呈现出来的局部性特征,进一步提高搜索效率。
其中,步骤(3)中,增加了一种优化方法,即基于一小部分占据着大部分的搜索IO请求的负载特征,进行基于阈值的关键字Posting列表的分割及缓存的方法,主要包括如下几个步骤:
(1)扩展posting项纪录文件被搜索的次数,设定相关阈值;
(2)通过阈值的判定将分区后的关键字的列表进一步分裂成更小的列表,高于阈值的Posting项组成一个新的列表,剩余的组成另一个列表;
(3)高频率被搜索的Posting列表缓存在内存中,提高搜索速率。
如图4所示,为基于访问频度阈值的关键字Posting列表的划分示意图。
在图4中,设定文件的搜索阈值,进行关键字的Posting列表的重新划分,高于阈值的列表聚集成一个新的Posting列表401,剩余的聚集成一个Posting列表402,由于Posting列表长度的降低,缓存在内存中,加快了搜索速率。
由上述可看出本发明的主要思想是,首先通过步骤101将元数据服务器中的目录树空间进行水平分区,将关键字的Posting列表进行一次切割,降低了Posting列表的长度,然后通过步骤102对水平切割的目录树分区进一步按照子树分区方向切割,进一步降低了Posting列表的长度,最后通过步骤103设定搜索阈值的方法,将高频率被搜索的Posting列表聚集在一块,在内存中进行缓存,通过将目录树空间分区,降低了Posting列表的长度,可以顺序地存储在磁盘上,提高了搜索速率,并且充分利用了搜索负载的局部性特征,快速地缩小目录树搜索范围,短的Posting列表可以利用内存的缓存作用,加快了搜索速率。
本发明在软件上,对操作系统要求为Linux系统,运行在Linux机群中提供文件IO服务的软件之上,如PVFS(Parallel Virtual File System)并行文件系统;并且在该文件系统中,配置多台服务器,并且要求元数据服务器至少有一台,其他为数据服务器。
下面详细说明搜索流程:
首先,元数据服务器接收用户的请求,在服务器中内存中进行匹配;然后,在元数据服务器中没有命中,转入步骤301-305中的目录树中的各分区中进行关键字的Posting列表的搜索,如果匹配,则只搜索相关的目录树分区,从而找到相关文件的元数据,否则转入其他分区中的Posting列表(图3中的L),直到找到结果,或者没有相关文件为止;最后,根据图4,依据设定的阈值,将关键字的Posting列表中的高频率访问的Posting聚合成新的列表,并且缓存在内存中,根据用户搜索的局部性,加快下一次搜索速率。最后所应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。

Claims (2)

1.一种基于大规模文件系统负载特征关键字的文件搜索方法,其特征在于:基于搜索目录树空间的局部性特征进行目录树空间的分区以及关键字Posting列表的分割,包括以下步骤:
(1)根据搜索负载在目录树空间水平聚集的特征,将目录树空间进行水平划分,并且在每一个分区内聚集关键字的Posting项,从而将整个关键字的Posting列表分隔在每个分区内;
(2)根据用户搜索的子树局部性特征,在目录树水平分区的基础上,将目录树分区按照子树方向进行分区,使步骤(1)中的目录树分区变得更小,进一步减小关键字的Posting列表的长度;关键字的Posting列表进行再一次分割,成为更小的列表;
(3)通过上述基于分区的关键字Posting列表的分割,使关键字列表顺序地存储在磁盘上面,并且基于用户搜索的局部性,再一次将高频率访问的关键字Posting列表分区,缩小目录树搜索范围。
2.根据权利要求1所述的基于大规模文件系统负载特征关键字的文件搜索方法,其特征在于:该方法中增加了一种优化方法,即基于占据着搜索IO请求的负载特征,进行基于阈值的关键字Posting列表的分割及缓存的方法,包括如下几个步骤:
(1)扩展posting项记录文件被搜索的次数,设定相关阈值;
(2)通过阈值的判定将分区后的关键字的列表进一步分裂成更小的列表,高于阈值的Posting项组成一个新的列表,剩余的组成另一个列表;
(3)高频率被搜索的Posting列表缓存在内存中。
CN201510068158.7A 2015-02-10 2015-02-10 一种基于大规模文件系统负载特征关键字的文件搜索方法 Active CN104657460B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510068158.7A CN104657460B (zh) 2015-02-10 2015-02-10 一种基于大规模文件系统负载特征关键字的文件搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510068158.7A CN104657460B (zh) 2015-02-10 2015-02-10 一种基于大规模文件系统负载特征关键字的文件搜索方法

Publications (2)

Publication Number Publication Date
CN104657460A CN104657460A (zh) 2015-05-27
CN104657460B true CN104657460B (zh) 2018-02-09

Family

ID=53248588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510068158.7A Active CN104657460B (zh) 2015-02-10 2015-02-10 一种基于大规模文件系统负载特征关键字的文件搜索方法

Country Status (1)

Country Link
CN (1) CN104657460B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326224B (zh) * 2015-06-16 2019-12-27 珠海金山办公软件有限公司 一种文件查找方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503163A (zh) * 2002-11-22 2004-06-09 �Ҵ���˾ 提供个性化为特定语言的搜索结果的国际搜索和传送系统
CN101520800A (zh) * 2009-03-27 2009-09-02 华中科技大学 一种基于密文的安全全文索引和检索系统
CN103092894A (zh) * 2011-11-08 2013-05-08 阿里巴巴集团控股有限公司 一种结构化信息检索方法和系统
CN103544258A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 一种大数据多区间查询条件下的基数估计方法及装置
CN103577418A (zh) * 2012-07-24 2014-02-12 北京拓尔思信息技术股份有限公司 海量文档分布式检索排重系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503163A (zh) * 2002-11-22 2004-06-09 �Ҵ���˾ 提供个性化为特定语言的搜索结果的国际搜索和传送系统
CN101520800A (zh) * 2009-03-27 2009-09-02 华中科技大学 一种基于密文的安全全文索引和检索系统
CN103092894A (zh) * 2011-11-08 2013-05-08 阿里巴巴集团控股有限公司 一种结构化信息检索方法和系统
CN103577418A (zh) * 2012-07-24 2014-02-12 北京拓尔思信息技术股份有限公司 海量文档分布式检索排重系统和方法
CN103544258A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 一种大数据多区间查询条件下的基数估计方法及装置

Also Published As

Publication number Publication date
CN104657460A (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
US10558399B2 (en) File system block-level tiering and co-allocation
US9858303B2 (en) In-memory latch-free index structure
CN106484877B (zh) 一种基于hdfs的文件检索系统
CN104679778B (zh) 一种搜索结果的生成方法及装置
CN103810237B (zh) 数据管理方法和系统
Cambazoglu et al. Scalability challenges in web search engines
CN110162528A (zh) 海量大数据检索方法及系统
KR101672901B1 (ko) 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템
US8229916B2 (en) Method for massively parallel multi-core text indexing
CN110825748A (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
CN100458784C (zh) 在数字图书馆中所采用的检索系统和检索方法
CN106354805A (zh) 一种分布式存储系统NoSQL搜索缓存的优化方法和系统
CN101944134A (zh) 一种海量存储系统的元数据服务器和元数据索引方法
CN104239377A (zh) 跨平台的数据检索方法及装置
CN110321325A (zh) 文件索引节点查找方法、终端、服务器、系统及存储介质
CN103176754A (zh) 一种海量小文件读取存储方法
CN106599040A (zh) 一种面向云存储的分层索引方法与检索方法
CN107491495B (zh) 空间属性优先的时空轨迹数据文件在辅助存储设备中的存储方法
Amur et al. Design of a write-optimized data store
CN106484694B (zh) 基于分布式数据库的全文搜索方法及系统
Iyer et al. A scalable distributed spatial index for the internet-of-things
CN101587484A (zh) 一种基于T-lt树的主存数据库的索引方法
CN102355502A (zh) 存储系统远程接入桌面操作系统的远程接入方法
CN103942301A (zh) 一种面向多数据类型访问应用的分布式文件系统
CN1255748C (zh) 一种存储虚拟化系统的元数据层次管理方法及其系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant