[发明专利]一种采用后缀数组索引的海量小文件查询方法及系统有效
申请号: | 201811133108.2 | 申请日: | 2018-09-27 |
公开(公告)号: | CN109284273B | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 赵鑫;孙茜;农革 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F16/13;G06F16/16 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 采用 后缀 数组 索引 海量 文件 查询 方法 系统 | ||
本发明公开了一种采用后缀数组索引的海量小文件查询方法。本发明通过合并小文件后存储到分布式文件系统上提高空间利用率,同时对每一个小文件建立后缀数组索引记录其存储信息以及小文件本身属性信息,并提供有效的小文件更新方法,支持多种方式的小文件查询,避免了传统的单一低效的海量小文件查询,保证了查询的即时性、准确性、高效性。解决了现有技术中简单合并小文件导致小文件查询方式单一、读取效率低下、小文件更新困难、查询即时性差等问题。
技术领域
本发明涉及大数据管理领域,更具体地,涉及一种采用后缀数组索引的海量小文件查询方法及系统。
背景技术
当前是大数据时代,各种现代信息应用都会产生出海量的数据,相应的也带来了存储和管理方面的压力。以HDFS为代表的多种常用分布式文件系统,在设计上都更适合大文件的存储。如果是对小文件进行存储,那么每个小文件都会因为占用一块完整的存储单位空间而导致空间的浪费。同时直接在分布式文件系统上存储小文件,会由于创建小文件元数据信息耗费大量服务器内存,而且在小文件数量达到一定规模之后,存储和检索的速度也会相应减慢。
解决以上问题的通用做法是合并小文件后再存储到分布式文件系统上,但是现有技术主要是直接对小文件在大文件中的偏移量建立索引,如建立哈希索引来进行简单的合并。这种合并方式会造成小文件查询方式单一、读取效率低下、小文件更新困难、查询即时性无法保障等问题。
发明内容
本发明的目的在于克服现有技术中简单合并小文件导致小文件查询方式单一、读取效率低下、小文件更新困难、查询即时性差等问题,提供一种采用后缀数组索引的海量小文件查询方法。
为实现以上发明目的,而采用的技术手段是:
一种采用后缀数组索引的海量小文件查询方法,包括:
小文件存储步骤:
客户端提交文件上传请求;
获取每个文件大小,对文件大小进行判断,若判断为非小文件,则对文件分别建立后缀数组索引并上传到分布式文件系统;若判断为小文件,则将小文件放入合并队列进行合并,对小文件分别建立后缀数组索引并将合并后的文件上传到分布式文件系统。
小文件查询步骤:
获取并解析查询请求;
确定查询类型;
确定要查询的指定域及查询条件;
根据查询条件在后缀数组索引中搜索指定域,得到符合条件的后缀数组索引记录;
根据后缀数组索引记录获取小文件在分布式文件系统中的位置信息,从分布式文件系统上获取对应小文件。
上述方案通过对每一个小文件建立后缀数组索引记录其存储信息以及小文件本身的属性信息,再合并小文件存储到分布式文件系统上。使得本发明的小文件查询方式支持多种方式的小文件查询,避免了传统的单一低效的海量小文件查询,并且保证了查询的即时性、准确性、高效性。
优选的,存储步骤所述判断的具体过程为:定义一个分布式文件系统上的默认存储单位的大小为阈值b、定义阈值a为小于阈值b的值,小于阈值a的文件为小文件,大于等于阈值a的文件为非小文件。
优选的,存储步骤所述后缀数组索引包括小文件名、小文件大小、小文件对应存储在分布式系统上的文件名、小文件对应存储在分布式系统上文件的偏移量、创建时间共五个域;每个域包括有用于记录文件对应该域具体内容的元数据、后缀数组以及域信息结构;
其中域信息结构包括该域中的存储文件数量,该域的元数据大小,记录该域内各文件的文件信息结构的FileInfo;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811133108.2/2.html,转载请声明来源钻瓜专利网。