数据存储方法、装置、设备、存储介质和程序产品与流程
- 国知局
- 2024-10-21 15:05:52
本申请涉及数据存储,特别是涉及一种数据存储方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
背景技术:
1、通常,向基于闪存的固态硬盘(solid state drive,ssd)中的闪存块(block)写入数据时,需要先擦除原存储位置上的数据后,才能在该位置写入数据,如果进行数据的覆盖写,需要将该待写入的数据写入到闪存块中的新的存储位置处,从而会导致原存储位置上的数据变成无效数据,造成闪存块中存在较多垃圾数据,影响ssd的存储性能。因此,需要通过闪存转换层(flash translation layer,ftl)对残留的垃圾数据进行垃圾回收(garbagecollection,gc),以清除闪存块上的垃圾数据,从而解决ssd的有效空间使用率的问题。然而,由于垃圾回收过程中会导致大量的数据搬移动作,会放大ssd的写放大现象,进而影响到ssd的性能。
2、传统技术中,通过在ssd硬件内部设计多个通道,一个通道内设计多个芯片的多流模式来解决数据读写的过程中的写放大问题。
3、然而,传统技术中存在对多流应用的ssd写入数据的过程中会产生垃圾数据的问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够减少对多流应用的ssd写入数据的过程中的垃圾数据的数据存储方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本申请提供了一种数据存储的方法。所述方法包括:
3、接收io请求,并将所述io请求转化为多个子io请求,各所述子io请求对应的数据类型不同;
4、针对每个所述子io请求,根据所述子io请求,获取所述子io请求对应的数据的预估生命周期;
5、根据所述预估生命周期和各ssd通道对应的生命周期,将所述子io请求对应的数据存储至目标ssd通道对应的目标闪存块中,所述目标ssd通道对应的目标生命周期与所述预估生命周期之间的差值小于第一阈值。
6、在其中一个实施例中,所述预估生命周期用于表征所述数据预估写入闪存块的时间至所述数据预估再次写入闪存块的时间之间的时间长度;或者,
7、所述预估生命周期用于表征所述数据预估写入闪存块的时间至所述数据预估被无效的时间之间的时间长度。
8、在其中一个实施例中,所述根据所述子io请求,获取所述子io请求对应的数据的预估生命周期,包括:
9、将所述子io请求输入预设的目标多流分配器,得到所述目标多流分配器输出的所述预估生命周期。
10、在其中一个实施例中,所述方法还包括:
11、获取历史时间段内多个样本子io请求以及各所述样本子io请求对应的样本生命周期;
12、根据所述多个样本子io请求以及各所述样本生命周期,对初始多流分配器进行迭代训练,直至所述初始多流分配器收敛,得到所述目标多流分配器。
13、在其中一个实施例中,所述目标生命周期包括目标时长范围,所述根据所述预估生命周期和各ssd通道对应的生命周期,将所述子io请求对应的数据存储至目标ssd通道对应的目标闪存块中,包括:
14、判断所述预估生命周期是否处于所述目标时长范围内;
15、若所述预估生命周期处于所述目标时长范围内,则将所述子io请求对应的数据存储至所述目标ssd通道对应的目标闪存块中。
16、在其中一个实施例中,所述将所述子io请求对应的数据存储至所述目标ssd通道对应的目标闪存块中,包括:
17、将所述子io请求对应的数据分配至所述目标ssd通道中,通过所述目标ssd通道将所述子io请求对应的数据存储至所述目标闪存块中;
18、其中,在所述目标ssd通道对应的当前闪存块中存在可用存储空间的情况下,所述目标闪存块为所述当前闪存块,在所述目标ssd通道对应的当前闪存块中不存在可用存储空间的情况下,所述目标闪存块为其他闪存块,所述当前闪存块和所述其他闪存块均与所述目标ssd通道相关联。
19、在其中一个实施例中,所述方法还包括:
20、若所述子io请求对应的数据类型为待处理数据,则从所述子io请求中获取所述待处理数据;
21、若所述子io请求对应的数据类型为元数据,则根据所述子io请求对应的文件信息,确定所述元数据的存储路径,并根据所述存储路径读取所述元数据。
22、在其中一个实施例中,所述方法还包括:
23、在所述目标闪存块中存储有至少两个子io请求对应的数据时,若所述至少两个子io请求对应的数据的预估生命周期结束,则在所述目标闪存块中同步擦除所述至少两个子io请求对应的数据;
24、其中,所述至少两个子io请求对应的数据的预估生命周期之间的差值小于第二阈值。
25、第二方面,本申请还提供了一种数据存储装置。所述装置包括:
26、转化模块,用于接收io请求,并将所述io请求转化为多个子io请求,各所述子io请求对应的数据类型不同;
27、第一获取模块,用于针对每个所述子io请求,根据所述子io请求,获取所述子io请求对应的数据的预估生命周期;
28、存储模块,用于根据所述预估生命周期和各ssd通道对应的生命周期,将所述子io请求对应的数据存储至目标ssd通道对应的目标闪存块中,所述目标ssd通道对应的目标生命周期与所述预估生命周期之间的差值小于第一阈值。
29、第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法的步骤。
30、第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法的步骤。
31、第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述的方法的步骤。
32、上述数据存储方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,服务器首先接收io请求,并将io请求转化为多个子io请求,接着,针对每个子io请求,根据子io请求获取子io请求对应的数据的预估生命周期,而后,根据预估生命周期和各ssd通道对应的生命周期,将子io请求对应的数据存储至目标ssd通道对应的目标闪存块中,由于目标ssd通道对应的目标生命周期与预估生命周期之间的差值小于第一阈值,也就是说,预估生命周期与目标生命周期为相近的生命周期,使得存储在目标闪存块中的各子io请求的数据能够同时成为目标闪存块中的垃圾数据,从而在目标闪存块中的数据同时成为垃圾数据的情况下,通过执行一次数据擦除处理,就能够擦除掉目标闪存块中全部的垃圾数据,进而能够减少在对多流应用的ssd中写入数据的过程中所产生的垃圾数据。
技术特征:1.一种数据存储方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述预估生命周期用于表征所述数据预估写入闪存块的时间至所述数据预估再次写入闪存块的时间之间的时间长度;或者,
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述子io请求,获取所述子io请求对应的数据的预估生命周期,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述目标生命周期包括目标时长范围,所述根据所述预估生命周期和各ssd通道对应的生命周期,将所述子io请求对应的数据存储至目标ssd通道对应的目标闪存块中,包括:
6.根据权利要求5所述的方法,其特征在于,所述将所述子io请求对应的数据存储至所述目标ssd通道对应的目标闪存块中,包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种数据存储装置,其特征在于,所述装置包括:
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
技术总结本申请涉及一种数据存储方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。所述方法包括:接收IO请求,并将所述IO请求转化为多个子IO请求,各所述子IO请求对应的数据类型不同;针对每个所述子IO请求,根据所述子IO请求,获取所述子IO请求对应的数据的预估生命周期;根据所述预估生命周期和各SSD通道对应的生命周期,将所述子IO请求对应的数据存储至目标SSD通道对应的目标闪存块中,所述目标SSD通道对应的目标生命周期与所述预估生命周期之间的差值小于第一阈值。采用本方法能够减少在对多流应用的SSD写入数据的过程中所产生的垃圾数据。技术研发人员:王云飞,韩勇,甄雨,刘芳,吕洋受保护的技术使用者:天津中科曙光存储科技有限公司技术研发日:技术公布日:2024/10/17本文地址:https://www.jishuxx.com/zhuanli/20241021/320488.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表