闪存存储器的垃圾回收方法、装置和计算设备与流程

摘要: 本技术涉及存储,尤其涉及一种闪存存储器的垃圾回收方法、装置和计算设备。背景技术:1、闪存存储器基于闪存实现,闪存存储器相比于传统的硬盘驱动器(harddiskd...
闪存存储器的垃圾回收方法、装置和计算设备与流程

本技术涉及存储,尤其涉及一种闪存存储器的垃圾回收方法、装置和计算设备。

背景技术:

1、闪存存储器基于闪存实现,闪存存储器相比于传统的硬盘驱动器(hard diskdrive,hdd),有着速度快、可靠性高等显著优势,随着闪存技术的不断发展,成本逐年降低,近年来在企业级存储、数据中心应用越来越广泛。

2、随着闪存存储器不断写入数据以及删除数据,闪存存储器中会产生无效数据,必须要进行垃圾回收(garbage collection,gc)才能对无效数据所占用的存储空间进行回收而垃圾回收会带来额外的写入操作,这部分额外的写入操作称为写放大。如果频繁的进行垃圾回收,会严重影响闪存存储器的性能和寿命。

3、基于此,如何减少闪存存储器的写放大成为亟待解决的问题。

技术实现思路

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、上述提供的任一种装置或计算机存储介质或计算机程序产品,均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文提供的对应方法中的对应方案的有益效果,此处不再赘述。