垃圾数据回收方法和装置、电子设备和存储介质与流程
- 国知局
- 2024-09-14 14:49:17
本技术涉及数据存储,尤其涉及一种垃圾数据回收方法和装置、电子设备和存储介质。
背景技术:
1、现有垃圾回收技术方案包括:
2、完全重写方案:用户写入的数据被删除后,某个数据block(存储系统存储数据的最小单元)内即包含有效数据和无效垃圾数据。该方案每次回收数据时都将block内所有有效数据全部读取出来,然后重新写入一个新的block,最后新旧block进行原子替换,完成垃圾数据回收。
3、但是,采用完全重写方案时,由于删除的对象可能分布在不同的block中,因此用户的删除也会随机分布到不同block中,有效数据在block内部内离散分布;该方案需要一个个读取所有的有效数据,每次读取数据都要访问一次磁盘io,消耗太多磁盘io,由于磁盘io是有限的,因此太多的磁盘io对前台用户的读写请求均有影响。
4、因此,相关技术中存在垃圾数据回收消耗过多磁盘io,影响前台用户的读写请求的性能的问题。
技术实现思路
1、本技术提供了一种垃圾数据回收方法和装置、电子设备和存储介质,以至少解决相关技术中存在垃圾数据回收消耗过多磁盘io,影响前台用户的读写请求的性能的问题。
2、根据本技术实施例的一个方面,提供了一种垃圾数据回收方法,包括:
3、确定目标存储单元组的目标生命周期,其中,所述目标生命周期用于指示所述目标存储单元组中的数据被回收的时刻,所述目标存储单元组中的每个目标数据块的删除时刻在所述生命周期之内,所述目标存储单元组包含多个目标存储单元,每个目标数据块存储在所述多个目标存储单元中的一个目标存储单元内;
4、在按照所述目标生命周期确定所述目标存储单元组的生命结束的情况下,对所有目标存储单元中的所有目标数据块进行垃圾数据回收。
5、可选地,如前述的方法,在所述对所有目标存储单元中的所有目标数据块进行垃圾数据回收之后,所述方法还包括:
6、将所述目标存储单元确定为可写存储单元,其中,所述可写存储单元为可用于写入数据的存储单元;
7、将所述可写存储单元挂载至指定存储单元组中,其中,所述指定存储单元组为具有生命周期的所有存储单元组中,生命周期为预设最长周期的存储单元组。
8、可选地,如前述的方法,所述对所有目标存储单元中的所有目标数据块进行垃圾数据回收,包括:
9、读取得到所述目标存储单元组中的所有有效数据块,其中,所述有效数据块为所述所有目标数据块中不进行删除的数据块;
10、将每个所述有效数据块一一对应地写入至新存储单元中;
11、对于每个新旧存储单元组,通过所述新旧存储单元组中的新存储单元对所述新旧存储单元组中的原始存储单元进行原子替换,其中,同一个所述新旧存储单元组中的所述新存储单元和所述原始存储单元存储有相同的所述有效数据块,所述原始存储单元为所有所述目标存储单元中存储有所述有效数据块的存储单元;
12、完成所述垃圾数据回收。
13、可选地,如前述的方法,所述方法还包括:
14、获取用于请求写入目标对象的写入请求;
15、在所述写入请求中确定出时长信息,其中,所述时长信息用于指示所述目标对象存储的存储时长;
16、在所有候选存储单元组中,确定出指定存储单元组,其中,且所述指定存储单元组是所有可选存储单元组中生命周期最短的存储单元组,所述可选存储单元组是所述所有候选存储单元组中生命周期长于所述存储时长的存储单元组;
17、将所述目标对象写入所述指定存储单元组中可被写入的指定存储单元中。
18、可选地,如前述的方法,在所述写入请求中确定出时长信息之后,所述方法还包括:
19、在所述存储时长大于最长生命存储单元组的生命周期的情况下,将所述目标对象写入普通可写单元组的普通存储单元中,其中,所述最长生命存储单元组为所述所有候选存储单元组中生命周期最长的存储单元组,所述普通可写单元组的生命周期无限长。
20、可选地,如前述的方法,在所述在所有候选存储单元组中,确定出指定存储单元组之后,所述方法还包括:
21、按照所述目标对象的数据量以及单个存储单元存储量确定出单元数量;
22、在存在所述单元数量的可用周期性存储单元的情况下,将所述单元数量的可用周期性存储单元作为新挂载存储单元挂载至所述指定存储单元组上,其中,所述可用周期性存储单元是具有生命周期属性,且可被写入的存储单元;
23、在可用周期性存储单元的当前数量小于所述单元数量的情况下,将所有所述可用周期性存储单元作为新挂载存储单元挂载至所述指定存储单元组上,将单元差值数量的普通存储单元中的每个普通存储单元转换为指定生命周期的转换后存储单元,并将所有所述转换后存储单元作为新挂载存储单元挂载至所述指定存储单元组中,其中,所述单元差值数量为所述单元数量与所述当前数量的差值,所述普通存储单元的生命周期无限长,所述指定生命周期为所述指定存储单元组的生命周期;
24、将所述目标对象写入所述新挂载存储单元中。可选地,如前述的方法,所述读取得到所述目标存储单元组中的所有有效数据块,包括:
25、获取待删除对象的待删除对象id,其中,所述待删除对象存储于所述目标存储单元组中;
26、查询得到所述待删除对象id对应的存储单元id;
27、调用系统删除接口对所述存储单元id指示的待处理存储单元内的所述目标数据块标记为确认删除数据块;
28、将所有所述目标数据块中除所述确认删除数据块之外的其他目标数据块确定为所述有效数据块。
29、根据本技术实施例的另一个方面,还提供了一种垃圾数据回收装置,包括:
30、确定模块,用于确定目标存储单元组的目标生命周期,其中,所述目标生命周期用于指示所述目标存储单元组中的数据被回收的时刻,所述目标存储单元组中的每个目标数据块的删除时刻在所述生命周期之内,所述目标存储单元组包含多个目标存储单元,每个目标数据块存储在所述多个目标存储单元中的一个目标存储单元内;
31、回收模块,用于在按照所述目标生命周期确定所述目标存储单元组的生命结束的情况下,对所有目标存储单元中的所有目标数据块进行垃圾数据回收。
32、根据本技术实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
33、根据本技术实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
34、在本技术实施例提供了一种垃圾数据回收方法和装置、电子设备和存储介质;其中,方法包括:确定目标存储单元组的目标生命周期,其中,所述目标生命周期用于指示所述目标存储单元组中的数据被回收的时刻,所述目标存储单元组中的每个目标数据块的删除时刻在所述生命周期之内,所述目标存储单元组包含多个目标存储单元,每个目标数据块存储在所述多个目标存储单元中的一个目标存储单元内;在按照所述目标生命周期确定所述目标存储单元组的生命结束的情况下,对所有目标存储单元中的所有目标数据块进行垃圾数据回收。通过设置具有生命周期的存储单元组,并且存储单元组中包括多个存储单元,该存储单元组中的每个数据块的删除时刻在该存储单元组的生命周期之内,从而可以在按照生命周期确定该存储单元组的生命结束的情况下,对该存储单元组内所有存储单元,使用批量完全重写方案进行垃圾数据回收,大幅度减少垃圾数据回收产生的磁盘io消耗,进而能够提升前台用户读写性能;有效克服了相关技术中垃圾数据回收消耗过多磁盘io,影响前台用户的读写请求的性能的技术问题。
本文地址:https://www.jishuxx.com/zhuanli/20240914/296043.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表