对象归并方法及装置制造方法及图纸

技术编号:31980127 阅读:22 留言:0更新日期:2022-01-20 01:36
本发明专利技术公开了一种对象归并方法及装置。其中,该方法包括:接收数据量小于预设阈值的目标对象;将目标对象缓存,并将目标对象写入元数据;将目标对象写入多个归并对象中的一个归并对象;在归并对象中的目标对象的总数据量达到第一预设数据量的情况下,将预设数据量的目标对象写入数据池;在归并对象的总数据量达到第二预设数据量的情况下,将归并对象写入数据池,并更新归并对象的所有目标对象的元数据,其中,第二预设数据量大于第一预设数据量。本发明专利技术解决了相关技术中的对象归并方法需要写入缓存池中,再从缓存池中读取,写入归并对象进行归并,不仅占用过多的缓存池资源,而且效率低的技术问题。率低的技术问题。率低的技术问题。

【技术实现步骤摘要】
对象归并方法及装置


[0001]本专利技术涉及数据存储领域,具体而言,涉及一种对象归并方法及装置。

技术介绍

[0002]随着互联网应用的高速度发展,对象存储以其易用性与几乎无限的扁平扩展性获得了广泛地应用。这其中小文件存储的需求越发凸显,但受限于存储后端空间的分配粒度限制,如有的后端SSD分配粒度是256K,HDD分配粒度是1M,海量小文件直接存储会导致巨大的空间浪费。并且小文件写入HDD时,受限于HDD IOPS性能瓶颈,导致写入性能比较低。
[0003]面对以上困难,目前业界比较常用的优化方式是对小文件进行归并处理,先把小文件写入到高度缓存池(SSD)中并记录日志,然后聚合一批小文件之后再读取出来组成一个大文件然后重新写入后端数据池(HDD)。使用归并的方法,海量小文件业务空间浪费问题和后端的性能问题都能得到较为明显的改善。
[0004]现有常用的归并方式是采用后台归并的方式,即先把小文件写入缓存SSD,然后记录日志。后台归并模块扫描日志,聚集到合适数量之后重新从缓存SSD中读取出小对象然后聚合为一个归并对象写入HDD后端。这种后台归并的方式存在如下缺点:
[0005]每个上传的小文件都会经过一次读、两次写,相当于每次IO都额外产生了一次读。对于缓存SSD,进行后台归并时需要读取小对象会产生大量的读IO影响前端写入性能。
[0006]由于使用扫描日志的方式后台进行归并,如果前台IO量较大但后台归并又不及时,会导致大量数据积压在缓存SSD,这会加大缓存盘的空间占用量甚至占满缓存空间的情况。
[0007]由于后台归并独立于前端IO进行,对前端IO不能有很好的反馈调节作用,容易造成归并小对象大量积攒,很难调节前端处理速率。
[0008]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0009]本专利技术实施例提供了一种对象归并方法及装置,以至少解决相关技术中的对象归并方法需要写入缓存池中,再从缓存池中读取,写入归并对象进行归并,不仅占用过多的缓存池资源,而且效率低的技术问题。
[0010]根据本专利技术实施例的一个方面,提供了一种对象归并方法,包括:接收数据量小于预设阈值的目标对象;将所述目标对象缓存,并将所述目标对象写入元数据,其中,所述元数据用于记录所述目标对象的存储路径;将所述目标对象写入多个归并对象中的一个归并对象;在归并对象中的目标对象的总数据量达到第一预设数据量的情况下,将所述预设数据量的目标对象写入数据池,其中,所述预设数据量为所述数据池的输入接口的最大写入数据量;在所述归并对象的总数据量达到第二预设数据量的情况下,将所述归并对象写入所述数据池,并更新所述归并对象的所有目标对象的元数据,其中,所述第二预设数据量大于所述第一预设数据量。
[0011]可选的,将所述目标对象写入多个归并对象中的一个归并对象包括:确定多个归并对象中处于空闲状态的归并对象,其中,所述空闲状态的归并对象可写入或可缓存等待写入;在所述空闲状态的归并对象为零的情况下,暂停对目标对象的写入;在所述空闲状态的归并对象为一个的情况下,将所述目标对象写入所述归并对象;在所述空闲状态的归并对象为多个的情况下,随机选取的一个归并对象,将所述目标对象写入所述归并对象。
[0012]可选的,将所述目标对象写入所述归并对象包括:通过需要写入的归并对象对所述目标对象进行锁定;将锁定的目标对象写入所述归并对象设置的缓存空间;在所述归并对象当前可写入的情况下,将所述目标对象从所述缓存空间中迁移到所述归并对象中;其中,在所述缓存空间中的目标对象超过预设数量的情况下,所述归并对象处于不可缓存等待写入状态。
[0013]可选的,在所述归并对象的总数据量达到第二预设数据量的情况下,将所述归并对象写入所述数据池,并更新所述归并对象的所有目标对象的元数据包括:根据所述归并对象中归并的目标对象的数据总量,所述目标对象的元数据参数,以及所述归并对象的属性参数,确定所述归并对象的总数据量;在所述总数据量达到所述第二预设数据量的情况下,将所述归并对象中的所述元数据参数和所述属性参数,以及剩余的目标对象的数据,写入所述数据池;更新所述元数据参数,以更新所述目标对象的元数据。
[0014]可选的,在所述归并对象的总数据量达到第二预设数据量的情况下,将所述归并对象写入所述数据池,并更新所述归并对象的所有目标对象的元数据之后,还包括:在所述归并对象的原位置创建新的归并对象;其中,所述新的归并对象在创建过程中处于不可写入状态。
[0015]可选的,还包括:在所述归并对象的总数据量达到第二预设数据量的情况下,确定所述归并对象归并完成;选取所述归并对象中最后归并的一个目标对象,执行所述归并对象的完成状态;对所述目标对象的元数据进行更新,并执行所述目标对象的更新元数据状态和完成元数据更新状态;其中,在所述完成状态,所述更新元数据状态和所述完成元数据更新状态,均为可写入的空闲状态。
[0016]可选的,所述方法还包括:接收到所述目标对象后,创建所述目标对象的第一归并日志,其中,所述第一归并日志用于记录所述目标对象,在所述目标对象完成归并且更新元数据后,删除所述第一归并日志;在归并中断后重新进入的情况下,扫描所述第一归并日志,确定未完成归并的目标对象,进行重新归并。
[0017]可选的,还包括:在归并对象创建后,创建所述归并对象的第二归并日志,其中,所述第二归并日志用于记录所述归并对象数据存储位置与归并状态,在所述归并对象成功写入数据池且更新元数据后,删除所述第二归并日志;在归并中断后重新进入的情况下,扫描所述第二归并日志,对已完成更新元数据的目标对象进行重新归并;回收所述第二归并日志对应的归并对象。
[0018]根据本专利技术实施例的另一方面,还提供了一种对象归并装置,包括:接收模块,用于接收数据量小于预设阈值的目标对象;缓存模块,用于将所述目标对象缓存,并将所述目标对象写入元数据,其中,所述元数据用于记录所述目标对象的存储路径;写入模块,用于将所述目标对象写入多个归并对象中的一个归并对象;第一归并模块,用于在归并对象中的目标对象的总数据量达到第一预设数据量的情况下,将所述预设数据量的目标对象写入
数据池,其中,所述预设数据量为所述数据池的输入接口的最大写入数据量;第二归并模块,用于在所述归并对象的总数据量达到第二预设数据量的情况下,将所述归并对象写入所述数据池,并更新所述归并对象的所有目标对象的元数据,其中,所述第二预设数据量大于所述第一预设数据量。
[0019]根据本专利技术实施例的另一方面,还提供了一种计算机存储介质,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机存储介质所在设备执行上述中任意一项所述的对象归并方法。
[0020]根据本专利技术实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的对象归并方法。
[0021]在本专利技术实施例中,采用接收数据量小于预设阈值的目标对象;将目标对象缓本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对象归并方法,其特征在于,包括:接收数据量小于预设阈值的目标对象;将所述目标对象缓存,并将所述目标对象写入元数据,其中,所述元数据用于记录所述目标对象的存储路径;将所述目标对象写入多个归并对象中的一个归并对象;在归并对象中的目标对象的总数据量达到第一预设数据量的情况下,将所述预设数据量的目标对象写入数据池,其中,所述预设数据量为所述数据池的输入接口的最大写入数据量;在所述归并对象的总数据量达到第二预设数据量的情况下,将所述归并对象写入所述数据池,并更新所述归并对象的所有目标对象的元数据,其中,所述第二预设数据量大于所述第一预设数据量。2.根据权利要求1所述的方法,其特征在于,将所述目标对象写入多个归并对象中的一个归并对象包括:确定多个归并对象中处于空闲状态的归并对象,其中,所述空闲状态的归并对象可写入或可缓存等待写入;在所述空闲状态的归并对象为零的情况下,暂停对目标对象的写入;在所述空闲状态的归并对象为一个的情况下,将所述目标对象写入所述归并对象;在所述空闲状态的归并对象为多个的情况下,随机选取的一个归并对象,将所述目标对象写入所述归并对象。3.根据权利要求2所述的方法,其特征在于,将所述目标对象写入所述归并对象包括:通过需要写入的归并对象对所述目标对象进行锁定;将锁定的目标对象写入所述归并对象设置的缓存空间;在所述归并对象当前可写入的情况下,将所述目标对象从所述缓存空间中迁移到所述归并对象中;其中,在所述缓存空间中的目标对象超过预设数量的情况下,所述归并对象处于不可缓存等待写入状态。4.根据权利要求3所述的方法,其特征在于,在所述归并对象的总数据量达到第二预设数据量的情况下,将所述归并对象写入所述数据池,并更新所述归并对象的所有目标对象的元数据包括:根据所述归并对象中归并的目标对象的数据总量,所述目标对象的元数据参数,以及所述归并对象的属性参数,确定所述归并对象的总数据量;在所述总数据量达到所述第二预设数据量的情况下,将所述归并对象中的所述元数据参数和所述属性参数,以及剩余的目标对象的数据,写入所述数据池;更新所述元数据参数,以更新所述目标对象的元数据。5.根据权利要求2所述的方法,其特征在于,在所述归并对象的总数据量达到第二预设数据量的情况下,将所述归并对象写入所述数据池,并更新所述归并对象的所有目标对...

【专利技术属性】
技术研发人员:周维张旭明王豪迈胥昕
申请(专利权)人:星辰天合北京数据科技有限公司
类型:发明
国别省市:

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

1