对象处理方法、装置、设备及存储介质与流程
- 国知局
- 2024-11-19 10:04:49
本技术涉及云计算领域,尤其涉及一种对象处理方法、装置、设备及存储介质。
背景技术:
1、随着云计算的普及,数据存储和管理的需求日益增长,以及各行业数字化转型的深入,非结构化数据呈现爆发式增长,对象存储作为能够提供大规模扩展且经济高效的存储方案。
2、对象存储广泛应用于内容分发,数据备份的场景,是云计算环境的重要工具。提升对象存储的性能优化对于处理大量、非结构化的数据具有明显优势。相关技术中,采用高速缓存方案来优化文件存储。但这种方案仅适用于小文件场景,面对大文件和海量数据的场景,由于受制于成本无法大范围使用高速缓存,使得大文件和海量数据场景下存在缓存空间不足的问题。也就是说,目前的对象处理方案仅适用个别场景,故可靠性不高。
技术实现思路
1、本技术提供一种对象处理方法、装置、设备及存储介质,用以解决目前的对象处理方案适用场景有限的问题。
2、一方面,本技术提供一种对象处理方法,应用于对象存储系统,系统包括多级缓存和数据池,级别越高的缓存对应的数据规格范围更大,最高级缓存的上一级为数据池;方法包括:响应客户端的上传请求,获取待上传对象的数据规格;上传请求用于请求存储待上传对象;将待上传对象作为当前的目标对象,将第一缓存确定为当前的目标缓存,待上传对象的数据规格在第一缓存对应的数据规格范围内;将当前的目标对象写入当前的目标缓存,并检测当前的目标缓存的缓存队列是否达到预设阈值;若达到阈值,则从当前的目标缓存中获取待聚合数据进行聚合,将目标对象更新为聚合得到的对象,将目标缓存更新为上一级缓存,返回执行将当前的目标对象写入当前的目标缓存的步骤;直至当前目标缓存的缓存队列未达到阈值,则将当前的目标对象写入当前的目标缓存,或者,当前目标缓存的上一级为数据池,则将当前的目标对象写入数据池。
3、在一些示例中,方法还包括:更新索引池中当前的目标对象的索引信息,其中,目标对象的索引信息表征该目标对象在对象存储系统中的存储位置。
4、在一些示例中,获取待上传对象的数据规格之前,还包括:根据待上传对象的数据规格和内容,生成待查特征码;查询索引池中是否存在待查特征码对应的第一索引信息;获取待上传对象的数据规格,包括:若不存在第一索引信息,则获取待上传对象的数据规格。
5、在一些示例中,将待上传对象作为当前的目标对象之前,还包括:判断待上传对象的类型,其中对象的类型包括大文件和小文件;若待上传对象为小文件,则不对待上传对象进行切片;若待上传对象为大文件,则对待上传对象进行切片,并将每个切片结果作为更新的待上传对象。
6、在一些示例中,根据待上传对象得到数据规格和内容,生成待查特征码,包括:若待上传对象为小文件,则根据待上传对象的大小和内容生成特征码作为待查特征码;若待上传对象为大文件,则根据切片结果的大小和内容生成特征码作为待查特征码。
7、在一些示例中,方法还包括:响应客户端的读取请求,查询索引池中是否存在待读取对象对应的第二索引信息;读取请求用于请求读取待读取对象;若不存在第二索引信息,则从数据池中读取待读取对象,并将读取的待读取对象返回给客户端;若存在第二索引信息,则根据第二索引信息确定待读取对象的存储位置;从存储位置获取待读取对象,并将待读取对象返回给客户端。
8、在一些示例中,从存储位置获取待读取数据,包括:若待读取对象的存储位置不属于数据池,则在待删除对象的存储位置所在缓存的缓存队列中进行检索,若检索到待读取对象,则将待读取对象返回给客户端,若未检索到待读取对象,则从待读取对象的存储位置所在的缓存中加载待读取对象,并将加载的待读取对象返回给客户端;若待读取对象的存储位置属于数据池,则从数据池中获取待读取对象的存储位置下的聚合对象,从索引池获取聚合对象的索引信息进行解析,得到待读取对象的数据规格和待读取对象在聚合对象中的偏移量,基于待读取对象的数据规格和偏移量,从聚合对象中读取出待读取对象,并将读取对象返回给客户端。
9、在一些示例中,查询索引池中是否存在待查特征码对应的第一索引信息之后,还包括:若存在第一索引信息,则将待上传对象的引用计数加一。
10、在一些示例中,方法还包括:响应客户端的删除请求,查询索引池中是否存在待删除对象对应的第三索引信息;删除请求用于请求删除待删除对象;若不存在第三索引信息,则从索引池中获取待删除对象的引用计数,检索待删除对象引用计数是否为一,若是则删除待删除对象,否则将待删除对象的引用计数减一;若存在第三索引信息,则根据第三索引信息确定待删除对象的存储位置,根据待删除对象的存储位置删除待删除数据。
11、在一些示例中,根据待删除对象的存储位置删除待删除数据,包括:若待删除对象的存储位置不属于数据池,则检索待删除对象的存储位置所在缓存的缓存队列中待删除对象的引用计数,若检索到待删除对象的引用计数为一,则删除待删除对象,若检索到待删除对象的引用计数不为一,则将待删除对象的引用计数减一;若待删除对象的存储位置属于数据池,则从数据池中读取待删除对象的存储位置下的第二聚合对象的第四索引信息,得到第二聚合对象的引用计数;若第二聚合对象的引用计数不为一,则将第二聚合对象的引用计数减一,若第二聚合对象的引用计数为一,则删除第二聚合对象的第四索引信息,并计算第二聚合对象的空洞率;若第二聚合对象的空洞率不小于预设的空洞率阈值,则将第二聚合对象标记为待回收对象,以通过系统空间回收处理对第二聚合对象进行回收。
12、在一些示例中,系统空间回收处理包括:检测当前是否存在待回收对象;若存在待回收对象且待回收对象不为聚合对象,则判断待回收对象是否过期,若过期则删除待回收对象;若存在待回收对象且待回收对象为聚合对象,则创建空白聚合对象,根据待回收对象的索引信息提取小文件,并将提取的小文件写入空白聚合对象中,得到新的聚合对象,并更新新的聚合对象的索引信息,使用新的聚合对象覆盖待回收对象。
13、在一些示例中,从当前的目标缓存中获取待聚合数据进行聚合,包括:从当前的目标缓存的各对象中,获取最久未使用的数据作为待聚合数据,对待聚合数据进行聚合。
14、另一方面,本技术提供一种对象处理装置,应用于对象存储系统,系统包括多级缓存和数据池,级别越高的缓存对应的数据规格范围更大,最高级缓存的上一级为数据池,装置包括:获取模块,用于响应客户端的上传请求,获取待上传对象的数据规格;上传请求用于请求存储待上传对象;处理模块,用于将待上传对象作为当前的目标对象,将第一缓存确定为当前的目标缓存,待上传对象的数据规格在第一缓存对应的数据规格范围内;处理模块,还用于将当前的目标对象写入当前的目标缓存,并检测当前的目标缓存的缓存队列是否达到预设阈值;若达到阈值,则从当前的目标缓存中获取待聚合数据进行聚合,将目标对象更新为聚合得到的对象,将目标缓存更新为上一级缓存,返回执行将当前的目标对象写入当前的目标缓存的步骤;直至当前目标缓存的缓存队列未达到阈值,则将当前的目标对象写入当前的目标缓存,或者,当前目标缓存的上一级为数据池,则将当前的目标对象写入数据池。
15、在一些示例中,处理模块还用于:更新索引池中当前的目标对象的索引信息,其中,目标对象的索引信息表征该目标对象在对象存储系统中的存储位置。
16、在一些示例中,装置还包括:合并模块,用于根据待上传对象的数据规格和内容,生成待查特征码;查询索引池中是否存在待查特征码对应的第一索引信息;获取模块,具体用于:若不存在第一索引信息,则获取待上传对象的数据规格。
17、在一些示例中,合并模块,还用于:判断待上传对象的类型,其中对象的类型包括大文件和小文件;若待上传对象为小文件,则不对待上传对象进行切片;若待上传对象为大文件,则对待上传对象进行切片,并将每个切片结果作为更新的待上传对象。
18、在一些示例中,合并模块具体用于:若待上传对象为小文件,则根据待上传对象的大小和内容生成特征码作为待查特征码;若待上传对象为大文件,则根据切片结果的大小和内容生成特征码作为待查特征码。
19、在一些示例中,处理模块还用于:响应客户端的读取请求,查询索引池中是否存在待读取对象对应的第二索引信息;读取请求用于请求读取待读取对象;若不存在第二索引信息,则从数据池中读取待读取对象,并将读取的待读取对象返回给客户端;若存在第二索引信息,则根据第二索引信息确定待读取对象的存储位置;从存储位置获取待读取数据,并将待读取对象返回给客户端。
20、在一些示例中,处理模块具体用于:若待读取对象的存储位置不属于数据池,则在待删除对象的存储位置所在缓存的缓存队列中进行检索,若检索到待读取对象,则将待读取对象返回给客户端,若未检索到待读取对象,则从待读取对象的存储位置所在的缓存中加载待读取对象,并将加载的待读取对象返回给客户端;若待读取对象的存储位置属于数据池,则从数据池中获取待读取对象的存储位置下的聚合对象,从索引池获取聚合对象的索引信息进行解析,得到待读取对象的数据规格和待读取对象在聚合对象中的偏移量,基于待读取对象的数据规格和偏移量,从聚合对象中读取出待读取对象,并将读取对象返回给客户端。
21、在一些示例中,合并模块还用于:若存在第一索引信息,则将待上传对象的引用计数加一。
22、在一些示例中,处理模块还用于:响应客户端的删除请求,查询索引池中是否存在待删除对象对应的第三索引信息;删除请求用于请求删除待删除对象;若不存在第三索引信息,则从索引池中获取待删除对象的引用计数,检索待删除对象引用计数是否为一,若是则删除待删除对象,否则将待删除对象的引用计数减一;若存在第三索引信息,则根据第三索引信息确定待删除对象的存储位置,根据待删除对象的存储位置删除待删除数据。
23、在一些示例中,处理模块具体用于:若待删除对象的存储位置不属于数据池,则检索待删除对象的存储位置所在缓存的缓存队列中待删除对象的引用计数,若检索到待删除对象的引用计数为一,则删除待删除对象,若检索到待删除对象的引用计数不为一,则将待删除对象的引用计数减一;若待删除对象的存储位置属于数据池,则从数据池中读取待删除对象的存储位置下的第二聚合对象的第四索引信息,得到第二聚合对象的引用计数;若第二聚合对象的引用计数不为一,则将第二聚合对象的引用计数减一,若第二聚合对象的引用计数为一,则删除第二聚合对象的第四索引信息,并计算第二聚合对象的空洞率;若第二聚合对象的空洞率不小于预设的空洞率阈值,则将第二聚合对象标记为待回收对象,以通过系统空间回收处理模块对第二聚合对象进行回收。
24、在一些示例中,系统空间回收处理模块用于:检测当前是否存在待回收对象;若存在待回收对象且待回收对象不为聚合对象,则判断待回收对象是否过期,若过期则删除待回收对象;若存在待回收对象且待回收对象为聚合对象,则创建空白聚合对象,根据待回收对象的索引信息提取小文件,并将提取的小文件写入空白聚合对象中,得到新的聚合对象,并更新新的聚合对象的索引信息,使用新的聚合对象覆盖待回收对象。
25、在一些示例中,处理模块具体用于:从当前的目标缓存的各对象中,获取最久未使用的数据作为待聚合数据,对待聚合数据进行聚合。
26、又一方面,本技术提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现如前的方法。
27、又一方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如前的方法。
28、本技术提供的对象处理方法、装置、设备及存储介质,首先响应客户端的上传请求,获取待上传对象的数据规格,根据数据规格确定初始负责存储待上传对象的缓存,将该缓存作为当前的目标缓存,将待上传对象作为当前的目标对象写入该目标缓存,并检测该目标缓存的缓存队列是否到达预设阈值,如果达到则在当前缓存队列中获取待聚合对象进行聚合,并提交至上一级缓存,针对上一级缓存的操作类似,直至当前写入的缓存的队列未达到阈值或者到达了数据池,完成对待上传对象的处理。本方案中设置有多级缓存,适用于存储不同大小的对象,并且在存储过程中当任一缓存较满时,将该级缓存中的对象聚合为更大的对象转存至上一级缓存中,从而实现对不同数据规格的对象进行处理,适用于小文件和大文件等多种场景,可靠性高。
本文地址:https://www.jishuxx.com/zhuanli/20241118/331442.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表