大数据环境下对象存储中小文件合并方法和装置制造方法及图纸

技术编号:36438227 阅读:10 留言:0更新日期:2023-01-20 22:52
本申请提出了一种大数据环境下对象存储中小文件合并方法、装置及电子设备,涉及对象存储技术领域,其中,大数据环境下对象存储中小文件合并方法包括:当用户读写文件时获取用户当前访问文件的文件大小;当其小于小文件大小阈值时,将当前访问文件对应的文件编号缓存到小文件组集合中,并使用哈希表保存访问次数;当用户访问文件数量达到合并文件数量阈值时,根据哈希表从小文件组集合中筛选出访问次数大于保留文件所需的最少访问次数阈值的目标文件编号;根据用户对目标文件编号进行分组以得到目标文件编号序列,进而获取目标文件;对目标文件进行对象存储,并将目标文件原文件删除。采用上述方案的本申请实现了海量小文件的高效存储与访问支持。的高效存储与访问支持。的高效存储与访问支持。

【技术实现步骤摘要】
大数据环境下对象存储中小文件合并方法和装置


[0001]本申请涉及对象存储
,尤其涉及大数据环境下对象存储中小文件合并方法和装置。

技术介绍

[0002]随着移动互联网和云计算技术的迅速发展,数字化信息呈爆炸式增长,特别是科学计算、高性能计算、Web服务等应用领域中图片、邮件、文本、互联网档案、小视频等小文件正以指数级速度增长,并且对所需存储服务的需求也在增加。使得存储系统面临着巨大挑战。分布式存储是最符合当下的存储方式。常用的分布式存储方法主要包括块存储,文件存储和对象存储。其中,对象存储由于其低成本,出色的可伸缩性以及简单方便的外部接口,在当今的云时代中起着越来越重要的作用。
[0003]对象存储是一种扁平结构,文件是以对象形式分布在数据节点中。对象存储的开放接口一般是REST接口或者最新的RPC 接口,这些接口使用和理解都非常简单,在大部分系统中都有被使用。对象存储可以通过添加新的数据节点的方式扩展容量,也可以通过增加接口服务器的方式加速用户请求处理。由于对象存储的灵活性和平坦性,较适合作不经常变动数据的存储。对象包括有对象数据实体和与之对应的元数据信息,元数据信息中有一部分会被存储系统本身利用,利用这部分元数据做到快速查找。对象存储不能像文件存储一样方便的修改数据,而必须要通过完全写入的方式覆盖掉原来的对象的方式改变原有对象。对象存储技术会将数据按照一定的规则,诸如根据其哈希值的方法映射到分布式集群数据节点上存储。可以自由的向集群添加新节点,横向扩展空间的同时又提供了额外的I/O性能。此外,对象存储系统有自己独特的存储结构,数据对象本身和其元数据搭配可以快速且简单地扁平化地搜寻到数据对象。
[0004]传统大数据环境下的对象存储文件系统是面向大文件数据存储与访问而设计的,在对海量小文件存储与访问时,存在元数据结构效率低、元数据服务器性能瓶颈、磁盘 I/O 效率低、磁盘空间利用率低和网络通信延时高等一系列问题。究其原因,主要是由元数据和数据两个方面造成的。一:元数据占比高、访问频率高、耗时开销大。每个文件不论大小其元数据大小相同。显然,文件越小,元数据占比就越高,有效数据率就低。二:数据访问随机性强、I/O 粒度小导致磁盘吞吐量低。海量小文件场景的“大量随机小粒度 I/O”会影响 SSD 的寿命和性能。因此,对海量小文件进行高效存储与访问支持,是当前大数据环境下对象存储系统必须面对的现实问题。

技术实现思路

[0005]本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]为此,本申请的第一个目的在于提出一种大数据环境下对象存储中小文件合并方法,解决了传统分布式文件系统面对海量小文件存储与访问时,存在的效率低、元数据服务器性能瓶颈的技术问题,实现了海量小文件的高效存储与访问支持。
[0007]本申请的第二个目的在于提出一种大数据环境下对象存储中小文件合并装置。
[0008]为达上述目的,本申请第一方面实施例提出了一种大数据环境下对象存储中小文件合并方法,包括:当用户读写文件时,获取用户当前访问文件的文件大小;当文件大小小于小文件大小阈值时,将当前访问文件对应的文件编号缓存到小文件组集合中,并使用哈希表保存当前访问文件的访问次数;当用户访问文件数量达到合并文件数量阈值时,根据哈希表从小文件组集合中筛选出访问次数大于保留文件所需的最少访问次数阈值的目标文件编号;根据用户对目标文件编号进行分组以得到分组后的目标文件编号序列,并根据目标文件编号序列获取目标文件;对目标文件进行对象存储,并将目标文件的原文件删除。
[0009]本申请实施例的大数据环境下对象存储中小文件合并方法,通过当用户频繁地访问某些小文件时,预先对这些文件合并,每次读取某个小文件,就将该小文件所在的合并后大文件整体预读到内存中,本申请通过文件合并、整体预读的方式大幅度减少磁盘 I/O的访问次数和元数据服务器的负载压力。
[0010]可选地,在本申请的一个实施例中,哈希表包括文件编号和对应文件的访问次数,小文件组集合包括用户对应的访问文件编号序列,用户对应的访问文件编号序列包括用户访问的所有文件的文件编号,根据哈希表从小文件组集合中筛选出访问次数大于保留文件所需的最少访问次数阈值的目标文件编号,包括:遍历小文件组集合依次得到文件编号序列,遍历文件编号序列得到当前文件编号;根据当前文件编号从哈希表中映射得到对应文件的访问次数,当对应文件的访问次数小于保留文件所需的最少访问次数阈值时,将当前文件编号从文件编号序列中删除;将经过处理后的文件编号序列中的文件编号作为目标文件编号。
[0011]可选地,在本申请的一个实施例中,根据用户对目标文件编号进行分组以得到分组后的目标文件编号序列,并根据目标文件编号序列获取目标文件,包括:按照访问文件的用户对目标文件编号进行分组,并按照访问次数对分组后的文件编号排序,得到目标文件编号序列;利用目标文件编号序列构建待合并关联信息树;对待合并关联信息树前序遍历得到待合并文件序列集合;根据待合并文件序列集合获取待合并文件编号序列组;基于待合并文件编号序列组,通过文件编号访问元数据服务器查找对应文件并读取,将读取出的文件作为目标文件。
[0012]可选地,在本申请的一个实施例中,利用目标文件编号序列构建待合并关联信息树,包括:定义关联信息树,并初始化关联信息树的根节点,其中,关联信息树的树结点结构包括文件编号、建树过程中结点的访问次数和该结点的孩子结点集合;遍历小文件组集合,得到待插入树中的文件编号序列;定义关联信息树的当前结点变量,并将当前结点变量初始化指向根节点;遍历待插入树中的文件编号序列,得到当前待插入序列号;若当前结点变量所指向的结点的孩子结点集合中不存在当前待插入序列号所对
应的结点,构建树结点结构作为当前待插入序列号所对应的结点,将树结点结构插入当前结点变量的孩子结点集合中,将当前结点向量的指向修改为当前待插入序列号对应的结点,并增加当前待插入序列号对应的结点的访问次数;将处理后的关联信息树作为待合并关联信息树。
[0013]可选地,在本申请的一个实施例中,对待合并关联信息树前序遍历得到待合并文件序列集合,包括:定义关联信息树的访问路径序列和文件序列集合,其中,访问路径序列为栈结构;定义用于遍历关联信息树的变量,并将用于遍历关联信息树的变量初始化指向待合并关联信息树的根节点;从用于遍历关联信息树的变量所指向的结点出发,根据前序遍历规则对待合并关联信息树进行递归访问;当递归访问到当前结点时,若当前结点的访问次数小于保留文件所需的文件最少访问次数阈值时,提前返回递归上层,否则将当前结点的结点值加到访问路径序列中;当递归到空节点返回上层时,将访问路径序列插入到文件序列集合中,并从访问路径序列中弹出最近插入的结点;将处理后的文件序列集合作为待合并文件序列集合。
[0014]可选地,在本申请的一个实施例中,根据待合并文件序列集合获取待合并文件编号序列组,包括:定义已合并文件编号集合和单次合并文件最大数量;从待合并文件序列集合中选本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大数据环境下对象存储中小文件合并方法,其特征在于,包括以下步骤:当用户读写文件时,获取用户当前访问文件的文件大小;当所述文件大小小于小文件大小阈值时,将所述当前访问文件对应的文件编号缓存到小文件组集合中,并使用哈希表保存所述当前访问文件的访问次数;当用户访问文件数量达到合并文件数量阈值时,根据所述哈希表从所述小文件组集合中筛选出访问次数大于保留文件所需的最少访问次数阈值的目标文件编号;根据用户对所述目标文件编号进行分组以得到分组后的目标文件编号序列,并根据所述目标文件编号序列获取目标文件;对所述目标文件进行对象存储,并将所述目标文件的原文件删除。2.如权利要求1所述的方法,其特征在于,所述哈希表包括文件编号和对应文件的访问次数,所述小文件组集合包括用户对应的访问文件编号序列,所述用户对应的访问文件编号序列包括用户访问的所有文件的文件编号,所述根据所述哈希表从所述小文件组集合中筛选出访问次数大于保留文件所需的最少访问次数阈值的目标文件编号,包括:遍历所述小文件组集合依次得到文件编号序列,遍历所述文件编号序列得到当前文件编号;根据所述当前文件编号从所述哈希表中映射得到对应文件的访问次数,当所述对应文件的访问次数小于所述保留文件所需的最少访问次数阈值时,将所述当前文件编号从所述文件编号序列中删除;将经过处理后的文件编号序列中的文件编号作为所述目标文件编号。3.如权利要求2所述的方法,其特征在于,所述根据用户对所述目标文件编号进行分组以得到分组后的目标文件编号序列,并根据所述目标文件编号序列获取目标文件,包括:按照访问文件的用户对所述目标文件编号进行分组,并按照访问次数对分组后的文件编号排序,得到所述目标文件编号序列;利用所述目标文件编号序列构建待合并关联信息树;对所述待合并关联信息树前序遍历得到待合并文件序列集合;根据所述待合并文件序列集合获取待合并文件编号序列组;基于所述待合并文件编号序列组,通过文件编号访问元数据服务器查找对应文件并读取,将读取出的文件作为所述目标文件。4.如权利要求3所述的方法,其特征在于,所述利用所述目标文件编号序列构建待合并关联信息树,包括:定义关联信息树,并初始化所述关联信息树的根节点,其中,所述关联信息树的树结点结构包括文件编号、建树过程中结点的访问次数和该结点的孩子结点集合;遍历所述小文件组集合,得到待插入树中的文件编号序列;定义关联信息树的当前结点变量,并将所述当前结点变量初始化指向所述根节点;遍历所述待插入树中的文件编号序列,得到当前待插入序列号;若当前结点变量所指向的结点的孩子结点集合中不存在当前待插入序列号所对应的结点,构建树结点结构作为所述当前待插入序列号所对应的结点,将所述树结点结构插入所述当前结点变量的孩子结点集合中,将当前结点向量的指向修改为所述当前待插入序列
号对应的结点,并增加所述当前待插入序列号对应的结点的访问次数;将处理后的关联信息树作为所述待合并关联信息树。5.如权利要求4所述的方法,其特征在于,所述对所述待合并关联信息树前序遍历得到待合并文件序列集合,包括:定义关联信息树的访问路径序列和文件序列集合,其中,所述访问路径序列为栈结构;定义用于遍历关联信息树的变量,并将所述用于遍历关联信息树的变量初始化指向所述待合并关联信息树的根节点;从所述用于遍历关联信息树的变量所指向的结点出发,根据前序遍历规则对所述待合并关联信息树进行递归访问;当递归访问到当前结点时,若所述当前结点的访问次数小于所述保留文件所需的文件最少访问次数阈值时,提前返回递归上层...

【专利技术属性】
技术研发人员:韦玮王世军舒安杰宋彦良李默晗阙仑李小翔冯帆杨永前付雄薛丽孙可欣
申请(专利权)人:华能置业有限公司
类型:发明
国别省市:

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

1