本技术涉及存储,特别是涉及一种数据写入方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、随着存储技术的不断发展,出现了一种全闪存储阵列技术,全闪存储阵列是包含ssd(solid state disk或solid state drive,固态硬盘)和系统控制器的存储系统,由于ssd需要先擦除老数据才能写入新数据,所以全闪存储系统是采用重定向写方式,以逻辑块组为单位从ssd分配逻辑地址写入数据。当ssd中剩余的写入存储空间不足时,需要通过系统级垃圾回收来释放空间。
2、相关技术中,在数据写入场景中,一般是直接按照数据流中包含的各个数据对象的排列顺序,依次写入逻辑块组中,再次基础上,在进行数据迁移时,需要将待回收逻辑块组中所有的有效数据全部迁移到新的逻辑块组,有效数据会在ssd内部发生大量搬移,盘的写放大次数增加,导致存储系统的性能较差。
技术实现思路
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、获取目标逻辑块组满足所述预设数据回收条件的第一时间;
29、在确定所述第一时间与当前时间的时间差值大于或者等于预设延迟时长的情况下,确定所述当前时间满足预设时间延迟条件。
30、本实施例中,通过配置预设延迟时长,进一步地提升了数据回收时逻辑块组内的无效数据的比例,减少数据搬迁过程中需要搬移的有效数据的数据量,降低写放大,提升固态硬盘的使用性能。
31、在其中一个实施例中,所述方法还包括:
32、在所述目标逻辑块组包含的各所述数据对象的生命周期不一致的情况下,获取所述目标逻辑块组中的最长生命周期,并确定所述最长生命周期为预设延迟时长;
33、或者,在所述目标逻辑块组包含的各所述数据对象的生命周期一致的情况下,确定默认时长为预设延迟时长。
34、本实施例中,通过各个数据对象的生命周期的一致情况确定预设延迟时长,可以进一步地提升数据回收时逻辑块组内的无效数据的比例,避免有效数据在数据迁移过程中的移动,达到同一逻辑块组中的组内数据同步失效的效果。
35、在其中一个实施例中,所述方法还包括:
36、响应于所述数据对象的数据修改操作,获取所述数据对象的数据更新时间;
37、在确定所述数据对象满足数据首次写入条件的情况下,将所述默认生命周期确定为所述数据对象的生命周期;
38、在确定所述数据对象不满足所述数据首次写入条件的情况下,基于所述数据对象的数据更新时间,计算所述数据对象的生命周期;并基于预设等级确定策略确定所述数据对象的生命周期等级。
39、本实施例中,通过对各个数据对象的生命周期分别对应的生命周期等级的动态调整,可以进一步降低存储系统的性能开销,为数据写入过程保留较多计算资源。
40、第二方面,本技术还提供了一种数据写入装置。所述装置包括:
41、第一获取模块,用于获取存储系统对应的待写入数据流,所述存储系统包括多个逻辑块组;
42、第一确定模块,用于识别所述待写入数据流包含的各数据对象的生命周期;
43、第一写入模块,用于将生命周期满足预设相似条件的各数据对象划分至同一分组,得到多个数据分组,并将各数据分组包含的多个数据对象,写入同一逻辑块组。
44、在其中一个实施例中,所述第一确定模块,具体用于:通过目标生命周期识别模型以及所述数据对象的地址标识信息,识别所述数据对象的生命周期。
45、在其中一个实施例中,所述第一确定模块,还具体用于:基于所述数据对象的地址标识信息在目标生命周期识别模型进行查询;
46、如果查询到所述数据对象的地址标识信息对应的目标生命周期,则确定所述目标生命周期为所述数据对象的生命周期;
47、如果未查询到所述数据对象的地址标识信息对应的目标生命周期,则确定默认生命周期为所述数据对象的生命周期。
48、在其中一个实施例中,该数据写入装置还包括:
49、第二获取模块,用于在目标逻辑块组满足预设数据回收条件的情况下,获取所述目标逻辑块组包含的各有效数据对象的生命周期;
50、第一划分模块,用于若当前时间满足预设时间延迟条件,则基于各所述有效数据对象的生命周期,将各所述有效数据划分为多个目标数据分组;
51、释放模块,用于基于各所述目标数据分组,对各有效数据对象进行数据迁移,并对所述目标逻辑块组进行释放处理。
52、在其中一个实施例中,第一划分模块,具体用于,基于各所述有效数据对象的生命周期,分别确定各所述有效数据对象的生命周期等级,并基于各所述有效数据对象的生命周期等级,将各所述有效数据划分为多个目标数据分组。
53、在其中一个实施例中,该数据写入装置还包括:
54、第三获取模块,用于获取所述目标逻辑块组的总数据容量,以及所述目标逻辑块组中的无效数据对象的无效数据容量;
55、第二确定模块,用于若所述无效数据容量与所述总数据容量的比值大于预设回收阈值,则确定所述目标逻辑块组满足预设数据回收条件。
56、在其中一个实施例中,该数据写入装置还包括:
57、第四获取模块,用于获取目标逻辑块组满足所述预设数据回收条件的第一时间;
58、第三确定模块,用于在确定所述第一时间与当前时间的时间差值大于或者等于预设延迟时长的情况下,确定所述当前时间满足预设时间延迟条件。
59、在其中一个实施例中,该数据写入装置还包括:
60、第五获取模块,用于在所述目标逻辑块组包含的各所述数据对象的生命周期不一致的情况下,获取所述目标逻辑块组中的最长生命周期,并确定所述最长生命周期为预设延迟时长;
61、第四确定模块,用于或者,在所述目标逻辑块组包含的各所述数据对象的生命周期一致的情况下,确定默认时长为预设延迟时长。
62、在其中一个实施例中,该数据写入装置还包括:
63、第六获取模块,用于响应于所述数据对象的数据修改操作,获取所述数据对象的数据更新时间;
64、第五确定模块,用于在确定所述数据对象满足数据首次写入条件的情况下,将所述默认生命周期确定为所述数据对象的生命周期;
65、第六确定模块,用于在确定所述数据对象不满足所述数据首次写入条件的情况下,基于所述数据对象的数据更新时间,计算所述数据对象的生命周期;并基于预设等级确定策略确定所述数据对象的生命周期等级。
66、第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
67、获取存储系统对应的待写入数据流,所述存储系统包括多个逻辑块组;
68、识别所述待写入数据流包含的各数据对象的生命周期;
69、将生命周期满足预设相似条件的各数据对象划分至同一分组,得到多个数据分组,并将各数据分组包含的多个数据对象,写入同一逻辑块组。
70、第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
71、获取存储系统对应的待写入数据流,所述存储系统包括多个逻辑块组;
72、识别所述待写入数据流包含的各数据对象的生命周期;
73、将生命周期满足预设相似条件的各数据对象划分至同一分组,得到多个数据分组,并将各数据分组包含的多个数据对象,写入同一逻辑块组。
74、第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
75、获取存储系统对应的待写入数据流,所述存储系统包括多个逻辑块组;
76、识别所述待写入数据流包含的各数据对象的生命周期;
77、将生命周期满足预设相似条件的各数据对象划分至同一分组,得到多个数据分组,并将各数据分组包含的多个数据对象,写入同一逻辑块组。
78、上述数据写入方法、装置、计算机设备、存储介质和计算机程序产品,该方法包括:获取存储系统对应的待写入数据流,所述存储系统包括多个逻辑块组;识别所述待写入数据流包含的各数据对象的生命周期;将生命周期满足预设相似条件的各数据对象划分至同一分组,得到多个数据分组,并将各数据分组包含的多个数据对象,写入同一逻辑块组。通过采用本方法,基于目标生命周期识别模型对待写入数据流中的各个数据对象的生命周期进行识别以及预测,可基于各个数据对象的生命周期和预设相似条件,对各个数据对象进行分组,实现同一逻辑块组内的数据同步失效的效果,进一步提升固态硬盘的使用性能,可以减少数据迁移过程中数据的搬移量,也提升了固态硬盘的使用年限。