[发明专利]基于多阶段加锁的闪存转换层混合垃圾回收方法在审
申请号: | 201811381497.0 | 申请日: | 2018-11-20 |
公开(公告)号: | CN109739775A | 公开(公告)日: | 2019-05-10 |
发明(设计)人: | 阮利;丁树勋;肖利民;苏书宾;李昂鸿;殷成涛 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F9/52 |
代理公司: | 北京海虹嘉诚知识产权代理有限公司 11129 | 代理人: | 吴小灿 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理线程 主动回收 闪存转换层 垃圾回收 线程 混合垃圾 请求队列 多阶段 回收 加锁 定期检查 初始化 空闲块 出队 队头 操作系统 保证 检测 服务 | ||
本发明提出一种基于多阶段加锁的闪存转换层混合垃圾回收方法,结合了主动回收及被动回收,保证了各种I/O负载下的垃圾回收效率。包括主动回收线程、I/O请求处理线程、请求队列;在NAND Flash启动之后,主动回收线程与I/O请求处理线程随闪存转换层初始化并开始运行,请求队列用于接收操作系统派发的I/O请求,并在上一个I/O操作完成后将队头的I/O请求出队,然后提交给I/O请求处理线程;主动回收线程会按照设定的条件不定期检查NAND Flash块的使用情况,在检测到空闲块比例较低时开始进行主动垃圾回收;被动垃圾回收是I/O请求处理线程的一部分,保证了设备有足够的空间来服务I/O请求。
技术领域
本发明属于计算机科学技术领域,尤其涉及一种基于多阶段加锁的闪存转换层混合垃圾回收方法。
背景技术
基于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请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811381497.0/2.html,转载请声明来源钻瓜专利网。