本申请实施例涉及计算机领域,尤其涉及一种数据写入方法以及相关设备。
背景技术:
1、基于存储设备可以构建抽象化的存储池,该存储池由多个逻辑块组构成。在将数据写入存储池时,如果写入的数据的逻辑地址与存储池中已经存在的某个目标数据的逻辑地址一致,这种情况为重复写入,重复写入的数据不会覆盖目标数据,而是写入存储池中的另一个位置,并将目标数据标记为垃圾数据。当重复写入的次数过多时,存储池中的空间会被大量消耗,为避免这种情况,需要执行垃圾回收(garbage collection,gc),将逻辑块组中中除垃圾数据之外的数据迁移到一个新的逻辑块组中,并释放原有逻辑块组中的所有数据。
2、在当前的技术当中,通常在系统的业务空闲的时候执行gc,然而这种方案的数据迁移量较大,并且如果系统不存在业务空闲的情况,如果执行gc会对当前的业务产生影响。
技术实现思路
1、本申请实施例提供了一种数据写入方法以及相关设备,用于降低垃圾回收时的读写放大。
2、本申请实施例第一方面提供了一种数据写入方法:
3、每个在存储池中的数据都有对应的逻辑地址,在第一数据写入存储池之前获取第一数据写入存储池中的第一逻辑地址。之后确定存储池中是否存储有第二数据,该第二数据的逻辑地址与第一逻辑地址相同。若存储池中存储有第二数据,则将第一数据写入存储池的第一逻辑块集合,第一逻辑块集合用于存储热数据。
4、本申请实施例中,写入第一逻辑块集合中的数据为重复写入的数据,也即是更新的数据。由于数据的属性与数据的逻辑地址存在对应关系,并且当某种属性的数据需要进行更新时,这种属性的数据在后续继续进行更新的可能性较高。因此在第一逻辑块集合中产生的垃圾数据的比例较高,因此在进行垃圾回收时,所产生的读写放大较小。
5、在一种可能的实现方式中,若存储池中未存储有第二数据,则将第一数据写入存储池的第二逻辑块集合,第二逻辑块集合用于存储冷数据。
6、本申请实施例中,写入第二逻辑块集合中的数据不是重复写入的数据,因此第二逻辑块集合中产生垃圾数据的比例较低,从而使得在进行垃圾回收时,所产生的读写放大较小。
7、在一种可能的实现方式中,如果第一逻辑块集合中垃圾数据的比例大于或等于预设阈值,则将第一数据迁移至新建的逻辑块集合,并释放第一逻辑块集合中的数据。
8、在一种可能的实现方式中,第一数据以及所述第二数据的数据属性相同,第一逻辑地址与数据属性存在对应关系。
9、在一种可能的实现方式中,还需要创建存储池,该存储池包括多个逻辑块,逻辑块的存储空间来自机械硬盘。
10、本申请实施例第二方面提供了一种存储设备:
11、该存储设备包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
12、本申请实施例第三方面提供了一种存储设备:
13、包括处理器,处理器与存储器耦合,存储器用于存储指令,当指令被处理器执行时,使得显示设备执行如前述第一方面中的方法。
14、本申请实施例第四方面提供了一种计算机程序产品,包括代码,当代码在计算机上运行时,使得计算机运行如前述第一方面的方法。
15、本申请实施例第五方面提供了一种计算机可读存储介质,其上存储有计算机程序或指令,其特征在于,计算机程序或指令被执行时,其上存储有计算机程序或指令,计算机程序或指令被执行时,使得计算机执行如前述第一方面的方法。
1.一种数据写入方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述第一数据以及所述第二数据的数据属性相同,所述第一逻辑地址与所述数据属性存在对应关系。
5.根据权利要求1至4所述的方法,其特征在于,所述方法还包括:
6.一种存储设备,其特征在于,包括:
7.根据权利要求6所述的设备,其特征在于,
8.根据权利要求6或7所述的设备,其特征在于,
9.根据权利要求8所述的设备,其特征在于,所述第一数据以及所述第二数据的数据属性相同,所述第一逻辑地址与所述数据属性存在对应关系。
10.根据权利要求6至9所述的设备,其特征在于,
11.一种存储设备,其特征在于,包括处理器,所述处理器与存储器耦合,所述存储器用于存储指令,当所述指令被所述处理器执行时,使得所述存储设备执行如权利要求1至5中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机指令或程序,其特征在于,所述计算机指令或程序被执行时,使得计算机执行如权利要求1至5中任一项所述的方法。