System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种实现垃圾回收的方法、装置、计算机存储介质及终端制造方法及图纸_技高网

一种实现垃圾回收的方法、装置、计算机存储介质及终端制造方法及图纸

技术编号:40901384 阅读:2 留言:0更新日期:2024-04-18 11:19
本申请公开一种实现垃圾回收的方法、装置、计算机存储介质及终端,包括:在执行垃圾回收(GC)时,同步进行主机访问请求,主机访问请求包括:主机写和/或读固态硬盘(SSD)的请求;将GC的所有源闪存块逐个标记为锁定闪存块;对锁定闪存块逐个进行垃圾回收处理且接收到主机写SSD请求时,判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页;锁定闪存块中属于有效的页变化为无效的页时,执行GC的写操作时变化为无效的页不写至新的闪存块。本公开实施例通过同步执行主机访问请求和GC,有效的确保了垃圾回收期间数据连贯性,通过对主机写SSD请求导致锁定闪存块无效页的不进行写至新的闪存块的处理,避免了GC数据重写主机写数据的情况。

【技术实现步骤摘要】

本申请涉及但不限于技术,其中涉及一种实现垃圾回收的方法、装置、计算机存储介质及终端


技术介绍

1、固态硬盘(ssd)的垃圾回收就是根据ssd的主控内嵌的垃圾回收算法,当nandflash可用的闪存块的个数小于所设定的阈值时,就把nand flash的一些闪存块上的有效数据读出来,然后汇集到另一个闪存块中,并把之前的闪存块进行擦除,从而这个擦除了的闪存块就变成了可用的新的闪存块了。通常ssd垃圾回收期间,主机(host)依然会去写(write)nand flash,假设在垃圾回收期间,设备(device)收到一个主机写ssd的请求,那么与之具有相同的逻辑块地址(lba,logical block address)的数据就瞬间由之前的有效的数据(valid data)变成了无效的数据(in-valid data),如果这个数据恰好处于垃圾收集块垃圾回收闪存块(gc block)中,那么这个数据在做gc编写程序(program)的时候,就要被忽略,否则就容易发生垃圾收集重写主机写数据的事情。事实上,对于用户来说主机写数据才是最新有效数据(latest valid data),也就是说,用户期望的永远是主机写数据重写垃圾收集数据,而不能发生垃圾收集数据重写的是主机的写数据。

2、相关技术中垃圾回收的处理包括:方案一:垃圾回收期间,将主机写数据做缓存,等到垃圾回收完成后,将主机写数据从缓存中读出再编写程序(program)到nand flash中,由此只会出现主机写数据重写垃圾收集数据的事情,可确保ssd垃圾回收期间数据连贯性(data coherence);上述方法存在以下缺点:1、有可能做了一些无效的编写程序,如图1所示,a、b和c为垃圾回收前的有效数据(valid data),假设在垃圾回收期间,设备(device)收到一笔主机写ssd的请求,其数据对应于图3中的d,那么与之具有相同的lba的“a”实际上已经由之前的有效数据变成了无效数据,但是基于上述垃圾回收的处理,并没有对这样的数据做特别考虑,由此可知刚刚垃圾回收编写程序的“a”(对应于图2中的“a”),在很短的时间内就被标记为了无效数据,这就是说“a”的生命周期比较短,也就相当于做了一次无效的编写程序。2、需要很大的缓冲器(buffer)来缓存主机写数据,因为通常一次垃圾回收的时间都会比较长,如果在这段时间内,主机写ssd比较频繁,而且数据量也比较大,那就需要用一个较大的缓冲器来缓存主机写数据,这将是一笔很大的开销。方案二:垃圾回收期间,将gc写操作暂停,优先将主机写数据编写程序到nand flash中,待主机写数据结束后,再进行gc写操作;这种方案的缺点:主机写优先的会导致nand flash的闪存块变得更加紧张,假如主机写操作是一笔很大数目的写操作,而由于编写程序操作是不能暂停的,会导致很长时间无法做gc,进而导致nand flash的闪存块变得更加紧张,这将会无形中增大了后续gc的工作量。

3、综上,如何提升垃圾回收的处理质量和效率,成为一个有待解决的问题。


技术实现思路

1、以下是对本申请详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

2、本公开实施例提供一种实现垃圾回收的方法、装置、计算机存储介质及终端,能够提升垃圾回收的处理质量和效率。

3、本公开实施例提供了一种实现垃圾回收的方法,包括:在执行垃圾回收gc时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘ssd的请求和/或主机读ssd的请求;将gc的所有源闪存块逐个标记为锁定闪存块;还包括:

4、对锁定闪存块逐个进行垃圾回收处理时,确定是否接收到主机写ssd请求;

5、接收到主机写ssd请求时,判断主机写ssd请求是否导致在锁定闪存块中属于有效的页变化为无效的页;

6、接收到的主机写ssd请求导致在锁定闪存块中属于有效的页变化为无效的页时,执行gc的写操作时对变化为无效的页不进行写至新的闪存块的处理。

7、另一方面,本公开实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述实现垃圾回收的方法。

8、再一方面,本公开实施例还提供一种终端,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,

9、处理器被配置为执行存储器中的计算机程序;

10、所述计算机程序被所述处理器执行时实现如上述实现垃圾回收的方法。

11、还一方面,本公开实施例还提供一种实现垃圾回收的装置,包括:同步单元、标记单元、确定单元、判断单元及处理单元;其中,

12、同步单元设置为:在执行垃圾回收gc时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘ssd的请求和/或主机读ssd的请求;

13、标记单元设置为:将gc的所有源闪存块逐个标记为锁定闪存块;

14、确定单元设置为:对锁定闪存块逐个进行垃圾回收处理时,确定是否接收到主机写ssd请求;

15、判断单元设置为:接收到主机写ssd请求时,判断主机写ssd请求是否导致在锁定闪存块中属于有效的页变化为无效的页;

16、处理单元设置为:接收到的主机写ssd请求导致在锁定闪存块中属于有效的页变化为无效的页时,执行gc的写操作时对变化为无效的页不进行写至新的闪存块的处理。

17、本公开实施例通过同步执行主机访问请求和gc,有效的确保了垃圾回收期间数据连贯性,通过对主机写ssd请求导致锁定闪存块无效页的不进行写至新的闪存块的处理,避免了gc数据重写主机写数据的情况。

18、本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。

本文档来自技高网...

【技术保护点】

1.一种实现垃圾回收的方法,其特征在于,包括:在执行垃圾回收GC时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘SSD的请求和/或主机读SSD的请求;将GC的所有源闪存块逐个标记为锁定闪存块;还包括:

2.根据权利要求1所述的方法,其特征在于,所述将GC的所有源闪存块逐个标记为锁定闪存块,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述判断主机写SSD请求是否导致在锁定闪存块中属于有效的页变化为无效的页,包括:

4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述根据确定的带宽调整相关信息调整主机和GC的数据带宽,包括基于以下公式确定主机分配到的带宽占比:

6.一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的实现垃圾回收的方法。

7.一种终端,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,

8.一种实现垃圾回收的装置,包括:同步单元、标记单元、确定单元、判断单元及处理单元;其中,

9.根据权利要求8所述的装置,其特征在于,所述标记单元是设置为:

10.根据权利要求8或9所述的装置,其特征在于,所述判断单元是设置为:

...

【技术特征摘要】

1.一种实现垃圾回收的方法,其特征在于,包括:在执行垃圾回收gc时,同步进行主机访问请求,主机访问请求包括:主机写固态硬盘ssd的请求和/或主机读ssd的请求;将gc的所有源闪存块逐个标记为锁定闪存块;还包括:

2.根据权利要求1所述的方法,其特征在于,所述将gc的所有源闪存块逐个标记为锁定闪存块,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述判断主机写ssd请求是否导致在锁定闪存块中属于有效的页变化为无效的页,包括:

4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述根据确...

【专利技术属性】
技术研发人员:张东峰
申请(专利权)人:合肥大唐存储科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1