一种小文件管理方法、系统和计算机设备技术方案

技术编号:24799349 阅读:16 留言:0更新日期:2020-07-07 21:01
本发明专利技术提供了一种小文件管理方法、系统和计算机设备。涉及对象存储技术,解决了小文件数量巨大导致的索引资源消耗过高、查询困难的问题。该方法包括:生成小文件索引树,在所述索引树的中间节点存储小文件的键值Key,在所述索引树的叶子节点里存储小文件的位置信息;裁剪掉所述索引树中的单分支节点。本发明专利技术提供的技术方案适用于海量小文件数据管理,实现了高性能的数据查询。

【技术实现步骤摘要】
一种小文件管理方法、系统和计算机设备
本专利技术涉及对象存储技术,尤其涉及一种小文件管理方法、系统和计算机设备。
技术介绍
当下的信息社会每天都产生大量需要保存的数据,这些数据在刺激海量存储技术发展的同时也带来了新的挑战。比如,海量数据为存储系统增加了大量的小文件,这些小文件的元数据如何管理,如何控制定位某个文件的时间和空间开销,是存储
亟待解决的问题。随着对数据实时性要求的增加,文件也越来越趋于碎片化,像短视频、直播类的业务,往往一个视频只有几百KB大小,更小的甚至只有几十KB。可以说,一个成熟的对象存储系统最后都会面临巨量元数据管理的挑战,如HDFS、openstack-swift等。以100TB数据(大约是日常的单机容量)为例,若全部存储10KB的文件(如果文件名<=1KB),仅是管理这些文件所需的索引数据就会达到大约10,000GB的内存空间。这是任何成熟的单机存储系统都无法接受的巨大压力。
技术实现思路
本专利技术旨在解决上面描述的问题。根据本专利技术的第一方面,提供了一种小文件管理方法,包括:生成小文件索引树,在所述索引树的中间节点存储小文件的键值(Key),在所述索引树的叶子节点里存储小文件的位置信息;裁剪掉所述索引树中的单分支节点。优选的,所述索引树为单词查找(Trie)树。优选的,该方法还包括:使用压缩矩阵(CompactedArray)存储所述索引树的数据结构。优选的,生成小文件索引树的步骤包括:为多个存储位置相邻的小文件添加同一索引。优选的,裁剪掉所述索引树中的单分支节点的步骤包括:对所述索引树进行扫描;将仅具有左子节点或右子节点的中间节点判定为单分支节点;对于单分支节点,将所述单分支节点本身裁剪掉。根据本专利技术的另一方面,还提供了一种小文件管理系统,包括:树生成模块,用于生成小文件索引树,在所述索引树的中间节点存储小文件的键值Key,在所述索引树的叶子节点里存储小文件的数据;树裁剪模块,用于裁剪掉所述索引树中的单分支节点。优选的,该系统还包括:树压缩模块,用于使用压缩矩阵CompactedArray存储所述索引树的数据结构。优选的,所述树生成模块包括:小文件优化单元,用于为多个存储位置相邻的小文件添加同一索引。优选的,所述树裁剪模块包括:特征信息扫描单元,用于对所述索引树进行扫描;节点筛选单元,将仅具有左子节点或右子节点的中间节点判定为单分支节点;对于单分支节点,将所述单分支节点本身裁剪掉。根据本专利技术的另一方面,还提供了一种计算机设备,包括存储器与处理器,所述存储器上存储有计算机程序,所述程序被所述处理器执行时实现如上述小文件管理方法的步骤。本专利技术提供了一种小文件管理方法、系统和计算机设备。生成小文件索引树,在所述索引树的中间节点存储小文件的键值Key,在所述索引树的叶子节点里存储小文件的数据,然后裁剪掉所述索引树中的单分支节点。在树索引数据结构的基础上进行压缩和整合,充分考虑了小文件存储的数据特征,极大的节约了索引内存占用的资源,提升了查询效率,实现了高性能的数据查询,解决了小文件数量巨大导致的索引资源消耗过高、查询困难的问题。参照附图来阅读对于示例性实施例的以下描述,本专利技术的其他特性特征和优点将变得清晰。附图说明并入到说明书中并且构成说明书的一部分的附图示出了本专利技术的实施例,并且与描述一起用于解释本专利技术的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本专利技术的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。图1示例性地示出了一种哈希映射(Hashmap)类索引原理;图2示例性地示出了一种B+Tree实现原理;图3示例性地示出了本专利技术的一实施例提供的一种小文件管理方法的流程;图4示例性地示出了一种Trie树结构;图5示例性地示出了图3中步骤302的具体流程;图6示例性地示出了Hash类数据结构的map和Tree类数据结构的索引内存占用对比;图7示例性地示出了Hash类数据结构的map和Tree类数据结构下查询相同确定存在的key查询时间比较结果;图8示例性地示出了Hash类数据结构的map和Tree类数据结构下查询相同的确定不存在的key的查询时间的比较结果;图9示例性地示出了本专利技术的一实施例一种小文件管理系统的结构;图10示例性地示出了图9中树生成模块901的结构;图11示例性地示出了图9中树裁剪模块902的结构。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。随着对数据实时性要求的增加,文件也越来越趋于碎片化,像短视频、直播类的业务,往往一个视频只有几百KB大小,更小的甚至只有几十KB。可以说,一个成熟的对象存储系统最后都会面临巨量元数据管理的挑战,如HDFS、openstack-swift等。以100TB数据(大约是日常的单机容量)为例,若全部存储10KB的文件(如果文件名<=1KB),仅是管理这些文件所需的索引数据就会达到大约10,000GB的内存空间。这是任何成熟的单机存储系统都无法接受的巨大压力。为了解决上述问题,本专利技术的实施例提供了一种小文件管理方法、系统和计算机设备。在树索引数据结构的基础上进行压缩和整合,充分考虑了小文件存储的数据特征,极大的节约了索引内存占用的资源,提升了查询效率,实现了高性能的数据查询,解决了小文件数量巨大导致的索引资源消耗过高、查询困难的问题。为了便于理解本专利技术的实施例提供的技术方案,首先对基于Hashmap的索引方式和基于树(Tree)的索引方式进行说明。一、基于Hashmap的索引方式。图1所示为一种Hashmap类索引示例。Hashmap类索引首先会利用hash函数的计算,将要存储的key映射到一个新的hash值,然后再建立索引。查找定位时也需要这一步的计算来定位到真正数据存储的位置。图1简单展示了其结构和工作原理。基于Hashmap的索引方式的优点如下:1、一次检索定位数据。即,每个key都可以通过一步计算找到所需的值的位置。2、查找的时间复杂度是O(k)(k是key的长度)。这个特点非常适合用来做单条数据的定位,然而它有一个前提是查找的key必须是等值匹配的,不支持“>”、“<”本文档来自技高网...

【技术保护点】
1.一种小文件管理方法,其特征在于,包括:/n生成小文件索引树,在所述索引树的中间节点存储小文件的键值Key,在所述索引树的叶子节点里存储小文件的位置信息;/n裁剪掉所述索引树中的单分支节点。/n

【技术特征摘要】
1.一种小文件管理方法,其特征在于,包括:
生成小文件索引树,在所述索引树的中间节点存储小文件的键值Key,在所述索引树的叶子节点里存储小文件的位置信息;
裁剪掉所述索引树中的单分支节点。


2.根据权利要求1所述的小文件管理方法,其特征在于,所述索引树为单词查找Trie树。


3.根据权利要求1所述的小文件管理方法,其特征在于,该方法还包括:
使用压缩矩阵CompactedArray存储所述索引树的数据结构。


4.根据权利要求1所述的小文件管理方法,其特征在于,生成小文件索引树的步骤包括:
为多个存储位置相邻的小文件添加同一索引。


5.根据权利要求1所述的小文件管理方法,其特征在于,裁剪掉所述索引树中的单分支节点的步骤包括:
对所述索引树进行扫描;
将仅具有左子节点或右子节点的中间节点判定为单分支节点;
对于单分支节点,将所述单分支节点本身裁剪掉。


6.一种小文件管理系统,其特征在于,包括:
树生成模块...

【专利技术属性】
技术研发人员:吴义谱李文博张炎泼
申请(专利权)人:贵州白山云科技股份有限公司
类型:发明
国别省市:贵州;52

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

1