当前位置: 首页 > 专利查询>中山大学专利>正文

一种采用后缀数组索引的海量小文件查询方法及系统技术方案

技术编号:20242209 阅读:210 留言:0更新日期:2019-01-29 23:18
本发明专利技术公开了一种采用后缀数组索引的海量小文件查询方法。本发明专利技术通过合并小文件后存储到分布式文件系统上提高空间利用率,同时对每一个小文件建立后缀数组索引记录其存储信息以及小文件本身属性信息,并提供有效的小文件更新方法,支持多种方式的小文件查询,避免了传统的单一低效的海量小文件查询,保证了查询的即时性、准确性、高效性。解决了现有技术中简单合并小文件导致小文件查询方式单一、读取效率低下、小文件更新困难、查询即时性差等问题。

【技术实现步骤摘要】
一种采用后缀数组索引的海量小文件查询方法及系统
本专利技术涉及大数据管理领域,更具体地,涉及一种采用后缀数组索引的海量小文件查询方法及系统。
技术介绍
当前是大数据时代,各种现代信息应用都会产生出海量的数据,相应的也带来了存储和管理方面的压力。以HDFS为代表的多种常用分布式文件系统,在设计上都更适合大文件的存储。如果是对小文件进行存储,那么每个小文件都会因为占用一块完整的存储单位空间而导致空间的浪费。同时直接在分布式文件系统上存储小文件,会由于创建小文件元数据信息耗费大量服务器内存,而且在小文件数量达到一定规模之后,存储和检索的速度也会相应减慢。解决以上问题的通用做法是合并小文件后再存储到分布式文件系统上,但是现有技术主要是直接对小文件在大文件中的偏移量建立索引,如建立哈希索引来进行简单的合并。这种合并方式会造成小文件查询方式单一、读取效率低下、小文件更新困难、查询即时性无法保障等问题。
技术实现思路
本专利技术的目的在于克服现有技术中简单合并小文件导致小文件查询方式单一、读取效率低下、小文件更新困难、查询即时性差等问题,提供一种采用后缀数组索引的海量小文件查询方法。为实现以上专利技术目的,而采用的技术手段是:一种采用后缀数组索引的海量小文件查询方法,包括:小文件存储步骤:客户端提交文件上传请求;获取每个文件大小,对文件大小进行判断,若判断为非小文件,则对文件分别建立后缀数组索引并上传到分布式文件系统;若判断为小文件,则将小文件放入合并队列进行合并,对小文件分别建立后缀数组索引并将合并后的文件上传到分布式文件系统。小文件查询步骤:获取并解析查询请求;确定查询类型;确定要查询的指定域及查询条件;根据查询条件在后缀数组索引中搜索指定域,得到符合条件的后缀数组索引记录;根据后缀数组索引记录获取小文件在分布式文件系统中的位置信息,从分布式文件系统上获取对应小文件。上述方案通过对每一个小文件建立后缀数组索引记录其存储信息以及小文件本身的属性信息,再合并小文件存储到分布式文件系统上。使得本专利技术的小文件查询方式支持多种方式的小文件查询,避免了传统的单一低效的海量小文件查询,并且保证了查询的即时性、准确性、高效性。优选的,存储步骤所述判断的具体过程为:定义一个分布式文件系统上的默认存储单位的大小为阈值b、定义阈值a为小于阈值b的值,小于阈值a的文件为小文件,大于等于阈值a的文件为非小文件。优选的,存储步骤所述后缀数组索引包括小文件名、小文件大小、小文件对应存储在分布式系统上的文件名、小文件对应存储在分布式系统上文件的偏移量、创建时间共五个域;每个域包括有用于记录文件对应该域具体内容的元数据、后缀数组以及域信息结构;其中域信息结构包括该域中的存储文件数量,该域的元数据大小,记录该域内各文件的文件信息结构的FileInfo;其中所述FileInfo包括索引删除标记符、文件对应属性内容在该域中的元数据大小、文件对应属性元数据首字节在该域中元数据的偏移量、文件ID。优选的,存储步骤还包括当合并队列中的文件大小达到阈值b时,将文件以二进制形式进行合并并对每个文件建立后缀数组索引,然后上传合并后的文件;所述合并队列中的文件在上传完成后清空并回收。优选的,查询步骤所述的查询类型包括精确查询和模糊查询。优选的,查询步骤所述的搜索指定域具体为:查询元数据和后缀数组找到匹配项在后缀数组索引记录的元数据中的偏移量,根据偏移量在FileInfo中找到对应的文件ID;优选的,还包括:小文件更新步骤:获取需更新的小文件;搜索后缀数组索引,把要更新的小文件标记为已删除;上传更新的小文件;对分布式文件系统上包含旧版小文件且满足重组条件的合并文件进行物理重组;其中满足重组条件指:定义合并文件中未被更新过的小文件的大小总和为有效利用空间,设定分布式文件系统上每个合并文件的有效利用空间的阈值,当有效利用空间小于阈值的合并文件数量达到指定数量时满足重组条件。优选的,更新步骤中所述的有效利用空间的具体计算过程:查询删除标识符标识为0的小文件后缀数组索引记录获取其所在合并文件并计算出分布式文件系统中各合并文件有效利用空间,判断是否达到阈值,若没达到阈值则记为一个有效利用空间小于阈值的合并文件。同时,本专利技术还提供了一种应用以上方法的系统,其包括:文件大小判断模块,用于判断所要上传的每个文件是否为小文件;合并模块,用于将多个小文件进行合并;文件上传模块,用于上传合并后的文件或上传非小文件;索引模块,用于为每一个文件创建后缀数组索引;查询模块,用于为查询海量小文件提供多种查询类型。查询文件获取模块,用于根据后缀数组索引记录从分布式文件系统上获取所查询的小文件。文件更新模块,用于小文件的更新。合并文件重组模块,用于小文件更新后对分布式文件系统上的合并文件进行重组,删除旧版小文件,重新生成新的合并文件存储到分布式文件系统上。优选的,所述查询模块提供的查询类型包括精确查询和模糊查询。与现有技术相比,本专利技术技术方案的有益效果是:一种采用后缀数组索引的海量小文件查询方法,能通过对每一个小文件建立后缀数组索引记录其存储信息以及小文件本身的属性信息,再合并小文件存储到分布式文件系统上;同时本专利技术提供了有效的小文件更新方法,采用的逻辑删除加上物理重组的方式,与常规的直接物理删除及重建相比能减少大量IO开销;使得本专利技术的小文件查询方式支持多种方式的小文件查询,避免了传统的单一低效的海量小文件查询,解决了现有技术中简单合并小文件导致小文件查询方式单一、读取效率低下、小文件更新困难、查询即时性差等问题。附图说明图1为本专利技术一实施例的小文件存储方法流程图。图2为本专利技术一实施例的小文件查询方法流程图。图3为本专利技术一实施例的小文件更新方法流程图。图4是本专利技术系统的模块连接示意图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本专利技术的技术方案做进一步的说明。本实施例将本专利技术应用于Hadoop分布式文件系统(HDFS)。本实施例中两个小文件的具体属性数据如表1所示,共有小文件名filename、小文件大小filesize、小文件对应存储在分布式系统上的文件名unionfilename、在分布式系统对应存储文件中的偏移量fileoffset、创建时间date五个属性,即五个域。表1两个文件对应的后缀数组索引如表2所示,每个域包括有用于记录文件对应该域具体内容的元数据、后缀数组以及域信息结构;表2其中两个文件中filename域的域信息结构如表3所示,包括该域中的存储文件数量fileNum,该域的元数据大小currentSize,记录该域内各文件的文件信息结构的FileInfo;FileInfo记录域内各文件的文件信息结构,包含了索引删除标记符delete(其中0为未删除、1为删除)、文件对应属性内容在该域中的元数据大小size、文件对应属性元数据首字节在该域中元数据的偏移量offset、文件IDfileID。该实施例中因为文档记录对应文件未被删除,所以delete标识为0。表3如图1所示,小文件存储步骤包括:A1.本文档来自技高网...

【技术保护点】
1.一种采用后缀数组索引的海量小文件查询方法,其特征在于,包括:小文件存储步骤:客户端提交文件上传请求;获取每个文件大小,对文件大小进行判断,若判断为非小文件,则对文件分别建立后缀数组索引并上传到分布式文件系统;若判断为小文件,则将小文件放入合并队列进行合并,对小文件分别建立后缀数组索引并将合并后的文件上传到分布式文件系统。小文件查询步骤:获取并解析查询请求;确定查询类型;确定要查询的指定域及查询条件;根据查询条件在后缀数组索引中搜索指定域,得到符合条件的后缀数组索引记录;根据后缀数组索引记录获取小文件在分布式文件系统中的位置信息,从分布式文件系统上获取对应小文件。

【技术特征摘要】
1.一种采用后缀数组索引的海量小文件查询方法,其特征在于,包括:小文件存储步骤:客户端提交文件上传请求;获取每个文件大小,对文件大小进行判断,若判断为非小文件,则对文件分别建立后缀数组索引并上传到分布式文件系统;若判断为小文件,则将小文件放入合并队列进行合并,对小文件分别建立后缀数组索引并将合并后的文件上传到分布式文件系统。小文件查询步骤:获取并解析查询请求;确定查询类型;确定要查询的指定域及查询条件;根据查询条件在后缀数组索引中搜索指定域,得到符合条件的后缀数组索引记录;根据后缀数组索引记录获取小文件在分布式文件系统中的位置信息,从分布式文件系统上获取对应小文件。2.根据权利要求1所述的海量小文件查询方法,其特征在于,存储步骤所述判断的具体过程为:定义一个分布式文件系统上的默认存储单位的大小为阈值b、定义阈值a为小于阈值b的值,小于阈值a的文件为小文件,大于等于阈值a的文件为非小文件。3.根据权利要求1所述的海量小文件查询方法,其特征在于,存储步骤所述后缀数组索引包括小文件名、小文件大小、小文件对应存储在分布式系统上的文件名、小文件对应存储在分布式系统上文件的偏移量、创建时间共五个域;每个域包括有用于记录文件对应该域具体内容的元数据、后缀数组以及域信息结构;其中域信息结构包括该域中的存储文件数量,该域的元数据大小,记录该域内各文件的文件信息结构的FileInfo;其中所述FileInfo包括索引删除标记符、文件对应属性内容在该域中的元数据大小、文件对应属性元数据首字节在该域中元数据的偏移量、文件ID。4.根据权利要求1所述的海量小文件查询方法,其特征在于,存储步骤还包括当合并队列中的文件大小达到阈值b时,将文件以二进制形式进行合并并对每个文件建立后缀数组索引,然后上传合并后的文件;所述合并队列中的文件在上传完成后清空并回收。5.根据权利要求1所述的海量小文件查询方法,其特征在于,查询步骤所述的查询类型包括精确查询和模糊查询。6....

【专利技术属性】
技术研发人员:赵鑫孙茜农革
申请(专利权)人:中山大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1