CN109739775A - 基于多阶段加锁的闪存转换层混合垃圾回收方法 - Google Patents
基于多阶段加锁的闪存转换层混合垃圾回收方法 Download PDFInfo
- Publication number
- CN109739775A CN109739775A CN201811381497.0A CN201811381497A CN109739775A CN 109739775 A CN109739775 A CN 109739775A CN 201811381497 A CN201811381497 A CN 201811381497A CN 109739775 A CN109739775 A CN 109739775A
- Authority
- CN
- China
- Prior art keywords
- garbage reclamation
- thread
- request
- block
- lock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明提出一种基于多阶段加锁的闪存转换层混合垃圾回收方法,结合了主动回收及被动回收,保证了各种I/O负载下的垃圾回收效率。包括主动回收线程、I/O请求处理线程、请求队列;在NAND Flash启动之后,主动回收线程与I/O请求处理线程随闪存转换层初始化并开始运行,请求队列用于接收操作系统派发的I/O请求,并在上一个I/O操作完成后将队头的I/O请求出队,然后提交给I/O请求处理线程;主动回收线程会按照设定的条件不定期检查NAND Flash块的使用情况,在检测到空闲块比例较低时开始进行主动垃圾回收;被动垃圾回收是I/O请求处理线程的一部分,保证了设备有足够的空间来服务I/O请求。
Description
技术领域
本发明属于计算机科学技术领域,尤其涉及一种基于多阶段加锁的闪存转换层混合垃圾回收方法。
背景技术
基于NAND Flash的存储设备内部结构设计与机械磁盘完全不同。NAND Flash不能直接对原来位置的数据进行修改,而要寻找一块空闲区域,然后再将新的数据写入,并将原来的数据置为无效,这种更新方式称之为“异地更新”。原来无效的块需要经过擦除操作之后才能继续使用。NAND Flash的闪存转换层一个重要的功能便是垃圾回收,负责选择合适的块并在合适的时机擦除。NAND Flash中每个块的擦除次数有限,当擦除超过一定次数,这个块便不能使用,垃圾回收方法需要在回收时决定对那些块进行擦除,因此垃圾回收方法选择待回收块对NAND Flash的寿命影响十分明显。当要对一个块进行擦除操作时,需要寻找空闲页将待回块中所有的有效页写入空闲页,然后才能进行擦除操作,这称之为NANDFlash的“数据迁移”,待回收块中有效页越多,擦除前需要进行迁移的页面越多,因此在选择块回收时,要同时考虑块中有效页的比例以及块的擦除次数。
垃圾回收分为主动回收和被动回收,被动回收是指当NAND Flash进行写操作时,发现没有可用的空闲页,此时需要进行垃圾回收,完成之后再继续之前的写入操作,被动回收比较高效,一般情况下,如果NAND Flash没有空闲页可用时,会存在大量的无效块,但是被动回收对I/O请求的阻塞比较严重,尤其是在负载较重时,写入操作可能会频繁触发被动垃圾回收。主动回收是指有一个独立的线程或任务定时检测NAND Flash中空闲空间的比例,当发现空闲块的比例较低时,便会开始进行回收,主动回收的触发条件非常重要,目前也有很多相关研究,但这些研究都没有很好地设计精确的触发时机,并且没有利用NANDFlash的空闲时间进行回收。在NAND Flash中,擦除是非常耗时的一个操作,远远超过读取和写入操作的平均时间,目前大多数主动回收方法会在回收期间阻塞I/O请求,导致I/O请求的响应时间大大增加。
发明内容
为了解决上述提出的问题,本发明针对目前主动垃圾回收没有利用空闲时间回收、触发时机不精确以及会阻塞上层I/O请求的问题和单一的被动垃圾回收在负载较重时对I/O性能影响较大的问题进行了深入研究,提出了一种基于多阶段加锁的闪存转换层混合垃圾回收方法。该方法结合了主动回收和被动回收,可以保证在多种负载下垃圾回收的高效性,利用NAND Flash的空闲时间进行回收,减少了对I/O请求的影响,设计了多阈值的触发条件,使得垃圾回收的时机更准确,同时还通过将主动回收划分为多个阶段并进行多阶段加锁的方法,减轻了垃圾回收的阻塞。
本发明的技术方案是:
1.一种基于多阶段加锁的闪存转换层混合垃圾回收方法,其特征在于,结合了主动回收和被动回收,包括主动回收线程、I/O请求处理线程、请求队列;在NAND Flash启动之后,主动回收线程与I/O请求处理线程随闪存转换层初始化并开始运行,请求队列用于接收操作系统派发的I/O请求,并在上一个I/O操作完成后将队头的I/O请求出队,然后提交给I/O请求处理线程;主动回收线程会按照设定的条件不定期检查NAND Flash块的使用情况,在检测到空闲块比例较低时开始进行主动垃圾回收;被动垃圾回收是I/O请求处理线程的一部分,在写负载较重,无效块产生的速度非常快,主动垃圾回收来不及进行的情况下,被动垃圾回收保证了设备仍然有足够的空间来服务I/O请求。
2.主要包括以下步骤:
步骤1:主动垃圾回收线程满足触发条件开始运行,和I/O请求处理线程争夺Access_Lock,其中Access_Lock是主动垃圾回收线程和I/O请求处理线程开始运行时必须获得的互斥锁;如果I/O请求处理线程获得Access_Lock,则进行I/O请求处理,如果主动垃圾回收线程获得Access_Lock,则进行下一步;
步骤2:主动垃圾回收线程根据块中无效页的比例及擦除次数进行待回收块的选择,然后将这些待回收块中需要迁移的有效页记录下来;
步骤3:将原子变量GC_running标志为true,其中原子变量GC_running的作用是为了保证主动垃圾回收多个阶段的原子性;
步骤4:释放Access_Lock,获取锁GC_Lock,GC_Lock是主动垃圾回收线程开始进行块擦除操作时必须获得的互斥锁;
步骤5:主动垃圾回收线程对待回收块进行擦除;
步骤6:将原子变量GC_running标志为false,然后释放GC_Lock。
3.其中,步骤1中的主动垃圾回收线程的触发条件具体如下:
步骤1.1:设置两个阈值L和H,其中L<H,这两个阈值表示的是NAND Flash中空闲块占全部块的比例;
步骤1.2:当检测到空闲块的比例低于L时,不管NAND Flash当前是否繁忙,当本次I/O完成之后便开始进行主动垃圾回收;
步骤1.3:当检测到空闲块比例大于L但小于H时,此时主动垃圾回收线程会首先检测NAND Flash是否空闲,即请求队列中是否有待处理的I/O请求,如果没有,则隔一小段时间再检查请求队列一次,如果连续几次检查都没有I/O请求,那么设备目前很可能空闲,则开始进行主动垃圾回收;
步骤1.4:如果检测空闲块比例大于H,则主动垃圾回收线程会休眠一段时间再进行检测,休眠的时间由NAND Flash顺序写入的速率决定,估算从目前开始一直写入直到空闲块比例小于L的时间,根据这个时间来计算应该休眠的时间,避免主动垃圾回收线程频繁检测;假设目前空闲块的比例为r,顺序写入的速率为v,即每秒能写v个块,总的块数量为Total_block,则休眠的时间t为:
t=2×Total_bLock×(r-L)/v。
4.其中,步骤1中的I/O请求处理的具体步骤如下:
步骤1.5:根据原子变量GC_running检测主动垃圾回收线程是否正在进行块擦除操作,如果是,则进行下一步;如果不是,则跳转到步骤1.9;
步骤1.6:判断当前请求是否为写操作,如果是则跳转到步骤1.8;如果是读操作,则进行下一步;
步骤1.7:检测要读的页是否是受保护页,如果是则进行下一步;如果不是则跳到步骤1.9;
步骤1.8:等待块擦除操作结束和保护解除;
步骤1.9:判断空闲块数量是否小于被动垃圾回收的阈值,如果是则先进行被动垃圾回收,随后进行I/O操作,如果不是则直接进行I/O操作,然后释放Access_Lock并返回。
本发明的技术效果是:
本发明提出的一种基于多阶段加锁的闪存转换层混合垃圾回收方法,结合了主动回收及被动回收,提出了空闲时间回收及多阶段加锁的优化方法,保证了各种I/O负载下的垃圾回收效率。为了更加精确地出进行垃圾回收,我们对主动垃圾回收设置了多阈值触发条件,并且能够利用NAND Flash的空闲时间进行回收,减小垃圾回收对I/O操作性能的影响;针对垃圾回收会阻塞应用I/O请求的问题,我们将垃圾回收过程进行划分并采用多阶段加锁,减轻了垃圾回收对I/O请求的阻塞;最后我们实现了提出的闪存转换层垃圾回收方法并验证了方法对NAND Flash擦除次数的优化以及I/O响应时间的优化。
与现有的技术相比,其主要优点是:
1、优化的主动垃圾回收时机:使用了多阈值的触发条件,空闲块数量所处的不同区间时,主动垃圾回收的处理也不同,在空闲块数量不太少时可以利用空闲时间进行回收,减小了对I/O请求的影响。
2、提出了多阶段加锁:将主动垃圾回收划分为两个阶段,将耗时长的擦除操作分离开来,并采用了多阶段加锁减轻了主动垃圾回收对读请求的阻塞。
与传统的垃圾回收方法区别在于:
垃圾回收的方式不同:传统的垃圾回收方法比较单一,不同保证不同负载下的垃圾回收效率。我们采用主动垃圾回收与被动垃圾回收结合的方式,能够利用NAND Flash空闲时间进行回收,同时提高了较重负载下的垃圾回收效率。
附图说明
图1是基于多阶段加锁的闪存转换层混合垃圾回收方法的结构示意图。
图2是主动垃圾回收触发时机流程图。
图3是主动回收线程及I/O请求处理线程流程图。
图4是传统阻塞型主动回收与本发明多阶段加锁主动回收对比图。
具体实施方式
为使本发明的目的、技术方案和优点表达地更加清楚明白,以下结合附图和具体实施步骤对本发明进行详细描述,但不作为对本发明的限定。
如图1所示,是本发明基于多阶段加锁的闪存转换层混合垃圾回收方法的结构示意图。本发明的方法结合了主动回收和被动回收,包括主动回收线程、请求处理线程、请求队列几个部分。在NAND Flash启动之后,主动回收线程与请求处理线程随闪存转换层初始化并开始运行,请求队列用于接收操作系统派发的I/O请求,并在上一个I/O操作完成后将队头的I/O请求出队,然后提交给I/O请求处理线程。主动回收线程会按照设定的条件不定期检查NAND Flash块的使用情况,在检测到空闲块比例较低时开始进行主动垃圾回收。被动垃圾回收是请求处理线程的一部分,因为在写负载较重时,无效块产生的速度会非常快,主动回收可能来不及进行回收,被动垃圾回收保证了这种情况下设备仍然有足够的空间来服务I/O请求。
主要包括以下步骤:
步骤1:主动垃圾回收线程满足触发条件开始运行,和I/O请求处理线程争夺Access_Lock,其中Access_Lock是主动垃圾回收线程和I/O请求处理线程开始运行时必须获得的互斥锁;如果I/O请求处理线程获得Access_Lock,则进行I/O请求处理,如果主动垃圾回收线程获得Access_Lock,则进行下一步;
步骤2:主动垃圾回收线程根据块中无效页的比例及擦除次数进行待回收块的选择,然后将这些待回收块中需要迁移的有效页记录下来;
步骤3:将原子变量GC_running标志为true,其中原子变量GC_running的作用是为了保证主动垃圾回收多个阶段的原子性;
步骤4:释放Access_Lock,获取锁GC_Lock,GC_Lock是主动垃圾回收线程开始进行块擦除操作时必须获得的互斥锁;
步骤5:主动垃圾回收线程对待回收块进行擦除;
步骤6:将原子变量GC_running标志为false,然后释放GC_Lock。
其中,主动垃圾回收的触发时机非常重要,不仅对I/O请求的响应时间有影响,并且对NAND Flash的寿命也有很大影响,若将触发条件设置的过于放松,则频繁的主动回收会造成块损耗速率的增加,同时也可能会造成上层应用I/O请求的阻塞。为了提高垃圾回收的效率,减少不必要的回收,同时避免主动垃圾回收线程频繁检测当前块状况,本发明结合NAND Flash的请求队列设计了基于多个阈值及I/O负载的触发条件。
如图2所示,为主动垃圾回收的触发时机流程图。具体方法如下:设置两个阈值L和H,其中L<H,这两个阈值表示的是NAND Flash中空闲块所占的比例,当主动垃圾回收线程激活,检测到空闲块的比例低于L时,不管设备当前是否繁忙,当本次I/O请求完成之后便试图进行垃圾回收,因为此时空闲块的数量已经很少,需要尽快腾出空闲块以供后续I/O请求使用;当有效块比例大于L但小于H时,此时主动垃圾回收线程会首先检测设备是否空闲,即请求队列中是否有待处理的I/O请求,如果没有,则隔一小段时间再进行检查,如果重复几次检查都没有I/O请求,那么设备目前很可能空闲,则开始进行主动垃圾回收,这样便可以在设备没有I/O请求需要处理时充分利用这段空闲时间完成垃圾回收,减少了进行I/O操作时的擦除操作,降低了I/O的时间;如果有效块比例大于H,说明此时空闲块数量还比较多,不需要进行垃圾回收,所以开始休眠。为了避免主动垃圾回收线程频繁地检测NAND Flash使用状态,以及更加精确地确定应该在之后何时唤醒主动回收线程进行检测,我们根据NAND Flash顺序写入的速率来决定休眠的时间,即估算从目前开始一直写入数据直到空闲块比例小于L的时间,根据来这个时间来确定应该休眠的时间。假设目前空闲块的比例为r,顺序写入的速率为v,即每秒能写v个块,总的块数量为Total_blk,则休眠的时间t为:
t=Total_blk×(r-L)/v
通过上面设计的主动垃圾回收触发的条件,我们有效地提高了主动回收的效率,同时减少了不必要的检测和回收,充分利用了NAND Flash的空闲时间,提高了I/O性能。为了保证上层I/O请求在一个可预测的时间上限内完成,需要保证回收一次不能回收太多块,否则擦除时间会非常长,I/O请求会阻塞很长时间,因此我们设置了主动回收一次最多回收的块数量,具体的数量需要根据NAND Flash的擦除耗时以及I/O请求可接受的响应时间来决定。
当写入负载比较重时,主动垃圾回收线程回收的速度可能会慢于数据写入的速度,而且因为我们采用了锁机制,回收线程有可能较长时间获取不到锁,因此还需要被动垃圾回收来保证在NAND Flash空间足够时,写请求能够正常完成。被动回收是请求处理线程的一部分,当进行写操作时,需要寻找空闲页,如果检测到空闲页小于被动回收设置的阈值X时,则阻塞写操作,开始进行垃圾回收直到空闲页的数量达到预设阈值时才停止回收,继续之前的写操作。
如图3所示,是主动回收线程及I/O请求处理线程流程图。本发明基于多阶段加锁的主动垃圾回收机制,采取多阶段加锁的方法,使得NAND Flash在进行主动垃圾回收的同时,对于那些没有位于待回收块上的有效页还可以进行并行读操作。如图3右侧流程图所示,为多阶段加锁主动垃圾回收流程图。其主要思想是将垃圾回收分为两个阶段,第一个阶段进行待回收块的选择,并将这些待回收块中的有效页放入“受保护区”,第二阶段,迁移这些块中的有效页,然后擦除待回收块。其中每一个阶段都需要获取相应的锁,防止发生数据一致性问题。在进行擦除的过程中,位于受保护区中的数据是不能访问的,如果没有位于受保护区,则可以进行读取。具体的方法如下:首先设置两个锁Access_Lock以及GG_Lock,主动垃圾回收线程或者I/O请求处理线程若要开始执行都需要获取Access_Lock。如果主动回收线程获取到了Access_Lock,那么需要确定好待回收的块,并选择出其中需要迁移的有效页,将其放入受保护区,然后释放Access_Lock;随后主动回收线程获取GC_Lock开始执行迁移流程以及块擦除操作,执行完之后释放GC_Lock;而I/O请求处理线程获得Access_Lock之后需要判断当前主动垃圾回收的第二阶段是否正在进行,如果没有则直接进行数据访问;如果主动回收正在执行,并且I/O请求类型为写请求,那么将阻塞直到垃圾回收完成,如果请求类型为读请求,则需要判断请求的页是否处于受保护区中,如果不在受保护区中则进行读操作,否则将阻塞直到主动回收过程结束。
可以看到,如果I/O请求处理线程在主动回收线程之前首先获得了Access_Lock,那么在I/O请求操作结束之前,主动垃圾回收不能开始。如果主动回收线程首先获得了Access_Lock,那么在选择出待回收块及将有效页放入受保护区之前,I/O请求不能开始进行处理,I/O请求处理和主动回收的第一阶段是互斥的,为了保证主动回收第二阶段与I/O请求处理并行进行时不发生数据竞争,我们设置一个原子变量GC_running,在主动回收第一阶段释放Access_Lock之前将其置为true,然后再进入第二阶段,此时I/O请求处理线程获得锁开始进行,根据GC_running得知主动回收第二阶段正在进行,因此根据I/O请求的具体类型以及请求的数据是否处于受保护区来决定是否休眠还是继续运行,当第二阶段结束之后,将GC_running置为false,使阻塞的I/O请求可以恢复运行。第二阶段需要获取GC_Lock是考虑到了存在多个主动垃圾回收线程的情况,在有多个主动垃圾回收线程时能够保证只有一个垃圾回收线程能够进行有效页迁移和块擦除操作,防止多个垃圾回收线程同时进行有效页迁移时,争抢相同的空闲页而发生错误。
如图3左侧流程图所示,为I/O请求处理的流程图。具体步骤如下:
步骤1.5:根据原子变量GC_running检测主动垃圾回收线程是否正在进行块擦除操作,如果是,则进行下一步;如果不是,则跳转到步骤1.9;
步骤1.6:判断当前请求是否为写操作,如果是则跳转到步骤1.8;如果是读操作,则进行下一步;
步骤1.7:检测要读的页是否是受保护页,如果是则进行下一步;如果不是则跳到步骤1.9;
步骤1.8:等待块擦除操作结束和保护解除;
步骤1.9:判断空闲块数量是否小于被动垃圾回收的阈值,如果是则先进行被动垃圾回收,随后进行I/O操作,如果不是则直接进行I/O操作,然后释放Access_Lock并返回。
垃圾回收相对读写操作很慢原因主要是因为擦除过程非常耗时,相对于传统的主动垃圾回收方法,我们将主动垃圾回收过程拆分为两个阶段,使得最耗时的擦除操作可以和大部分读请求并行进行,很好地降低了I/O操作的响应时间,提高了I/O性能。图4展示了传统的阻塞型主动垃圾回收与本发明的多阶段加锁垃圾回收在进行请求时的时序对比图。在主动垃圾回收开始之后,一个read请求到达,在阻塞型主动回收中,read请求必须等到整个垃圾回收过程完成后才能进行,而在非阻塞型主动回收中,只需要在垃圾回收过程的待回收块选择完成之后便可以进行,因为待回收块的选择在垃圾回收过程中的耗时占比很小,因此本发明比较明显地降低了I/O请求的延迟。
因为每次主动回收的块相对于整个NAND Flash的全部块非常少,所以大多数读请求请求的数据不会位于待迁移页中,因此不会被垃圾回收阻塞,经过实验测试,这种方法在读多写少的情况下较明显地降低了I/O的响应时间,并且降低了垃圾回收的次数。
Claims (4)
1.一种基于多阶段加锁的闪存转换层混合垃圾回收方法,其特征在于,结合了主动回收和被动回收,整体包括主动回收线程、I/O请求处理线程、请求队列;在NAND Flash启动之后,主动回收线程与I/O请求处理线程随闪存转换层初始化并开始运行,请求队列用于接收操作系统派发的I/O请求,并在上一个I/O操作完成后将队头的I/O请求出队,然后提交给I/O请求处理线程;主动回收线程会按照设定的条件检查NAND Flash块的使用情况,在检测到空闲块比例较低时开始进行主动垃圾回收;被动垃圾回收是I/O请求处理线程的一部分,在写负载较重,无效块产生的速度非常快,主动垃圾回收来不及进行的情况下,被动垃圾回收保证了设备仍然有足够的空间来服务I/O请求。
2.根据权利要求1所述的方法,其特征在于,包括以下步骤:
步骤1:主动垃圾回收线程满足触发条件开始运行,和I/O请求处理线程争夺Access_Lock,其中Access_Lock是主动垃圾回收线程和I/O请求处理线程开始运行时必须获得的互斥锁;如果I/O请求处理线程获得Access_Lock,则进行I/O请求处理,如果主动垃圾回收线程获得Access_Lock,则进行下一步;
步骤2:主动垃圾回收线程根据块中无效页的比例及擦除次数进行待回收块的选择,然后将这些待回收块中需要迁移的有效页记录下来;
步骤3:将原子变量GC_running标志为true,其中原子变量GC_running的作用是为了保证主动垃圾回收多个阶段的原子性;
步骤4:释放Access_Lock,获取锁GC_Lock,GC_Lock是主动垃圾回收线程开始进行块擦除操作时必须获得的互斥锁;
步骤5:主动垃圾回收线程对待回收块进行擦除;
步骤6:将原子变量GC_running标志为false,然后释放GC_Lock。
3.根据权利要求2所述的方法,其特征在于,在步骤1中的主动垃圾回收线程的触发条件具体如下:
步骤1.1:设置两个阈值L和H,其中L<H,这两个阈值表示的是NAND Flash中空闲块的比例;
步骤1.2:当检测到空闲块的比例低于L时,不管NAND Flash当前是否繁忙,当本次I/O完成之后便开始进行主动垃圾回收;
步骤1.3:当检测到空闲块比例大于L但小于H时,此时主动垃圾回收线程会首先检测NAND Flash是否空闲,即查看请求队列中是否有待处理的I/O请求,如果没有,则隔一小段时间再检查请求队列一次,如果连续几次检查都没有I/O请求,那么设备目前很可能空闲,则开始进行主动垃圾回收;
步骤1.4:如果检测到空闲块比例大于H,则主动垃圾回收线程会休眠一段时间再进行检测,休眠的时间由NAND Flash顺序写入的速率决定,估算从目前开始一直写入直到空闲块比例小于L的时间,根据这个时间来计算应该休眠的时间,避免主动垃圾回收线程频繁检测;假设目前空闲块的比例为r,顺序写入的速率为v,即每秒能写v个块,总的块数量为Total_block,则休眠的时间t为:
t=2×Total_block×(r-L)/v。
4.根据权利要求2所述方法,其特征在于,步骤1中的I/O请求处理的具体步骤如下:
步骤1.5:根据原子变量GC_running检测主动垃圾回收线程是否正在进行块擦除操作,如果是,则进行下一步;如果不是,则跳转到步骤1.9;
步骤1.6:判断当前请求是否为写操作,如果是则跳转到步骤1.8;如果是读操作,则进行下一步;
步骤1.7:检测要读的页是否是受保护页,如果是则进行下一步;如果不是则跳到步骤1.9;
步骤1.8:等待块擦除操作结束和保护解除;
步骤1.9:判断空闲块数量是否小于被动垃圾回收的阈值,如果是则先进行被动垃圾回收,随后进行I/O操作,如果不是则直接进行I/O操作,然后释放Access_Lock并返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811381497.0A CN109739775A (zh) | 2018-11-20 | 2018-11-20 | 基于多阶段加锁的闪存转换层混合垃圾回收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811381497.0A CN109739775A (zh) | 2018-11-20 | 2018-11-20 | 基于多阶段加锁的闪存转换层混合垃圾回收方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109739775A true CN109739775A (zh) | 2019-05-10 |
Family
ID=66355695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811381497.0A Pending CN109739775A (zh) | 2018-11-20 | 2018-11-20 | 基于多阶段加锁的闪存转换层混合垃圾回收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739775A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309078A (zh) * | 2019-07-02 | 2019-10-08 | 北京计算机技术及应用研究所 | 一种全闪存储阵列的主机与固态盘协同垃圾回收方法 |
CN110515859A (zh) * | 2019-07-09 | 2019-11-29 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
CN110750495A (zh) * | 2019-10-14 | 2020-02-04 | Oppo(重庆)智能科技有限公司 | 文件管理方法、装置、存储介质以及终端 |
CN110780814A (zh) * | 2019-10-10 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种存储数据整理方法与装置 |
CN111045956A (zh) * | 2019-12-22 | 2020-04-21 | 北京浪潮数据技术有限公司 | 一种基于多核cpu的固态硬盘垃圾回收方法以及装置 |
US20220334967A1 (en) * | 2021-04-20 | 2022-10-20 | International Business Machines Corporation | Flash memory garbage collection |
CN115904264A (zh) * | 2023-03-13 | 2023-04-04 | 浪潮电子信息产业股份有限公司 | 一种存储系统中块的垃圾数据回收方法、装置以及介质 |
CN116049113A (zh) * | 2022-08-29 | 2023-05-02 | 荣耀终端有限公司 | 文件系统的整理方法、电子设备及计算机可读存储介质 |
CN116610596A (zh) * | 2023-07-19 | 2023-08-18 | 合肥康芯威存储技术有限公司 | 一种存储器件及其数据处理方法 |
US11907564B2 (en) | 2021-08-03 | 2024-02-20 | Yadro International Ltd. | Method of and system for initiating garbage collection requests |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6209003B1 (en) * | 1998-04-15 | 2001-03-27 | Inktomi Corporation | Garbage collection in an object cache |
US20080071970A1 (en) * | 2006-09-15 | 2008-03-20 | Lin Jason T | Non-Volatile Memory With Class-Based Update Block Replacement Rules |
CN101339808A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 存储块的擦除方法及装置 |
US9183142B2 (en) * | 2013-03-15 | 2015-11-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing flash memory write amplification and latency |
CN105740162A (zh) * | 2015-12-31 | 2016-07-06 | 上海盈方微电子有限公司 | 应用于nand存储器的nftl数据存储系统及方法 |
CN106598878A (zh) * | 2016-12-27 | 2017-04-26 | 湖南国科微电子股份有限公司 | 一种固态硬盘冷热数据分离方法 |
CN107451069A (zh) * | 2017-08-09 | 2017-12-08 | 厦门大学 | 基于预留空间的固态盘阵列的垃圾回收方法 |
CN108595112A (zh) * | 2018-03-14 | 2018-09-28 | 深圳忆联信息系统有限公司 | 一种优化触发机制的ssd垃圾回收方法及固态硬盘 |
-
2018
- 2018-11-20 CN CN201811381497.0A patent/CN109739775A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6209003B1 (en) * | 1998-04-15 | 2001-03-27 | Inktomi Corporation | Garbage collection in an object cache |
US20080071970A1 (en) * | 2006-09-15 | 2008-03-20 | Lin Jason T | Non-Volatile Memory With Class-Based Update Block Replacement Rules |
CN101339808A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 存储块的擦除方法及装置 |
US9183142B2 (en) * | 2013-03-15 | 2015-11-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing flash memory write amplification and latency |
CN105740162A (zh) * | 2015-12-31 | 2016-07-06 | 上海盈方微电子有限公司 | 应用于nand存储器的nftl数据存储系统及方法 |
CN106598878A (zh) * | 2016-12-27 | 2017-04-26 | 湖南国科微电子股份有限公司 | 一种固态硬盘冷热数据分离方法 |
CN107451069A (zh) * | 2017-08-09 | 2017-12-08 | 厦门大学 | 基于预留空间的固态盘阵列的垃圾回收方法 |
CN108595112A (zh) * | 2018-03-14 | 2018-09-28 | 深圳忆联信息系统有限公司 | 一种优化触发机制的ssd垃圾回收方法及固态硬盘 |
Non-Patent Citations (2)
Title |
---|
SOHYANG KO ET AL.: "Study on Garbage Collection Schemes for Flash-Based Linux Swap System", 《2008 ADVANCED SOFTWARE ENGINEERING AND ITS APPLICATIONS》 * |
李想: "基于软件架构的固态硬盘FTL设计", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309078A (zh) * | 2019-07-02 | 2019-10-08 | 北京计算机技术及应用研究所 | 一种全闪存储阵列的主机与固态盘协同垃圾回收方法 |
CN110309078B (zh) * | 2019-07-02 | 2021-07-02 | 北京计算机技术及应用研究所 | 一种全闪存储阵列的主机与固态盘协同垃圾回收方法 |
CN110515859A (zh) * | 2019-07-09 | 2019-11-29 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
CN110515859B (zh) * | 2019-07-09 | 2021-07-20 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
CN110780814B (zh) * | 2019-10-10 | 2021-08-06 | 苏州浪潮智能科技有限公司 | 一种存储数据整理方法与装置 |
CN110780814A (zh) * | 2019-10-10 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种存储数据整理方法与装置 |
CN110750495A (zh) * | 2019-10-14 | 2020-02-04 | Oppo(重庆)智能科技有限公司 | 文件管理方法、装置、存储介质以及终端 |
CN111045956B (zh) * | 2019-12-22 | 2021-10-22 | 北京浪潮数据技术有限公司 | 一种基于多核cpu的固态硬盘垃圾回收方法以及装置 |
CN111045956A (zh) * | 2019-12-22 | 2020-04-21 | 北京浪潮数据技术有限公司 | 一种基于多核cpu的固态硬盘垃圾回收方法以及装置 |
US20220334967A1 (en) * | 2021-04-20 | 2022-10-20 | International Business Machines Corporation | Flash memory garbage collection |
US11907123B2 (en) * | 2021-04-20 | 2024-02-20 | International Business Machines Corporation | Flash memory garbage collection |
US11907564B2 (en) | 2021-08-03 | 2024-02-20 | Yadro International Ltd. | Method of and system for initiating garbage collection requests |
CN116049113A (zh) * | 2022-08-29 | 2023-05-02 | 荣耀终端有限公司 | 文件系统的整理方法、电子设备及计算机可读存储介质 |
CN116049113B (zh) * | 2022-08-29 | 2023-10-20 | 荣耀终端有限公司 | 文件系统的整理方法、电子设备及计算机可读存储介质 |
CN115904264A (zh) * | 2023-03-13 | 2023-04-04 | 浪潮电子信息产业股份有限公司 | 一种存储系统中块的垃圾数据回收方法、装置以及介质 |
CN116610596A (zh) * | 2023-07-19 | 2023-08-18 | 合肥康芯威存储技术有限公司 | 一种存储器件及其数据处理方法 |
CN116610596B (zh) * | 2023-07-19 | 2023-10-03 | 合肥康芯威存储技术有限公司 | 一种存储器件及其数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739775A (zh) | 基于多阶段加锁的闪存转换层混合垃圾回收方法 | |
CN103136121B (zh) | 一种固态盘的缓存管理方法 | |
CN108363806B (zh) | 数据库的多版本并发控制方法、装置、服务器及存储介质 | |
RU2672719C2 (ru) | Журналируемое хранение без блокировок для нескольких способов доступа | |
EP3550442B1 (en) | Database lock management with cache-optimized hash table | |
US7194589B2 (en) | Reducing disk IO by full-cache write-merging | |
US6070230A (en) | Multi-threaded read ahead prediction by pattern recognition | |
CN106528438B (zh) | 一种固态存储设备的分段式垃圾回收方法 | |
US20170300426A1 (en) | Read cache management method and apparatus based on solid state drive | |
US6260115B1 (en) | Sequential detection and prestaging methods for a disk storage subsystem | |
EP3388947B1 (en) | Memory resource optimization method and apparatus | |
US5652864A (en) | Concurrent storage allocations or returns without need to lock free storage chain | |
CN101944068A (zh) | 一种共享高速缓存的性能优化方法 | |
JP2009205335A (ja) | 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法 | |
CN106569960B (zh) | 一种混合主存的末级缓存管理方法 | |
KR101481633B1 (ko) | 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법 | |
CN107015763A (zh) | 混合存储系统中ssd管理方法及装置 | |
US10853250B2 (en) | Storage management method, electronic device and computer program product | |
CN107783908A (zh) | 一种基于Linux内核内存泄露的检测方法 | |
CN103092774A (zh) | 一种处理器末级高速缓存的管理系统及方法 | |
EP2740038B1 (en) | Memory coalescing computer-implemented method, system and apparatus | |
CN110046107A (zh) | 存储器地址转换 | |
CN105045563A (zh) | 一种推测嵌套软件事务存储的冲突管理方法 | |
CN103514098B (zh) | 用于回收存储空间的方法和系统 | |
CN102779017B (zh) | 一种固态盘中数据缓存区的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190510 |
|
RJ01 | Rejection of invention patent application after publication |