垃圾回收方法和装置制造方法及图纸

技术编号:10215339 阅读:156 留言:0更新日期:2014-07-16 09:53
本发明专利技术公开了一种垃圾回收方法和装置,属于计算机技术领域。该方法包括:获取各个空闲块的VPC;根据各个空闲块的VPC,确定第一空闲块组和第二空闲块组,根据第一档位数范围中的档位数对第一空闲块组进行档位划分,第一档位数范围中的档位数的增长速度大于第一预设速度,且第一空闲块组中空闲块VPC的增长与第一档位数范围中的档位数的增长速度呈正相关;依划分后的档位,从第一空闲块组和第二空闲块组中确定指定空闲块,并对指定空闲块进行垃圾回收。本发明专利技术通过采用非线性分档,精细化GC集中区域的分档,避免了VPC发生变化时,链表的频繁操作,减少了GC的延迟,节省了计算开销。

【技术实现步骤摘要】
垃圾回收方法和装置
本专利技术涉及计算机
,特别涉及一种垃圾回收方法和装置。
技术介绍
随着计算机技术的发展,SSD(SolidStateDrive,固态硬盘)存储越来越普遍。SSD由控制器和存储器组成,控制器接收主机下发的IO(InputOutput,输入输出)请求,将其拆分成固定大小并分配空闲物理地址,再将请求发送给存储器,存储器处理完请求后返回响应给控制器,控制器对响应进行处理并返回给主机。在现有技术中,当空闲物理地址不足时,控制器需要对存储器的原有数据进行删除操作,删除的最小单位是块。而当原有数据中部分数据有效时,需要进行GC(GarbageCollection,垃圾回收),即将原有数据中的有效数据复制到其他空白区域,再进行删除操作。为了减少GC过程中复制的数据量,提升GC速度,会尽量选择有效数据少的块进行GC。为此,通常采取分档排序法确定待进行GC的块,以VPC(ValidPageCount,有效页计数)来表示有效数据量,即根据存储器中块的VPC和确定的档位数进行线性分档,从低档位中确定待进行GC的块。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:在应用分档排序法进行GC时,存储器的块VPC都是偏小的,而分档排序法是根据固定的档位进行分档,导致大多数块会集中于某个档位中,不利于GC的进行,而如果增加档位,以减少每个档位的范围,由于分档算法一般是通过链表方式实现的,档位数越多,当VPC发生变化时,就会导致链表操作更加频繁,GC的延迟和计算开销都会大幅提升。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种垃圾回收方法和装置。所述技术方案如下:第一方面,提供了一种垃圾回收方法,所述方法包括:获取各个空闲块的有效页计数VPC;根据该各个空闲块的VPC,确定第一空闲块组和第二空闲块组,该第一空闲块组包括多个VPC小于或等于第一阈值的空闲块,该第二空闲块组包括该第一空闲块组以外的空闲块;根据第一档位数范围中的档位数对该第一空闲块组进行档位划分,该第一档位数范围中的档位数随着该第一空闲块组中的空闲块的VPC的增长而增长,且该第一档位数范围中的档位数随该第一空闲块组中的空闲块的VPC增长的增长的增长速度大于第一预设速度;按照划分后的档位,从该第一空闲块组和第二空闲块组中确定指定空闲块,并对指定空闲块进行垃圾回收。结合第一方面,在该第一方面的第一种可能实现方式中,所述方法还包括:根据第二档位数范围中的档位数对所述第二空闲块组进行档位划分,所述第二档位数范围中的档位数随着第二空闲块组中的空闲块的VPC的增长而增长,且第二档位数范围中的档位数随所述第二空闲块组中的空闲块的VPC增长的增长速度小于所述第一预设速度。结合上述任一种可能实现方式,在该第一方面的第二种可能实现方式中,所述方法还包括:根据所述第二空闲块组中各个空闲块的VPC,确定第三空闲块组,所述第三空闲块组包括所述第二空闲块组中多个VPC属于指定数值范围的空闲块,根据第三档位数范围中的档位数对所述第三空闲块组进行档位划分,所述第三档位数范围中的档位数随着所述第三空闲块组中的空闲块的VPC的增长而增长,且所述第三档位数范围中的档位数随所述第三空闲块组中的空闲块的VPC增长的增长速度大于所述第一预设速度。结合上述任一种可能实现方式,在该第一方面的第三种可能实现方式中,所述方法还包括:根据所述第二空闲块组中各个空闲块的VPC,确定第四空闲块组,所述第四空闲块组包括所述第二空闲块组中除所述第三空闲块组以外的空闲块;根据第四档位数范围中的档位数对所述第四空闲块组进行档位划分,所述第四档位数范围中的档位数随着所述第四空闲块组中的空闲块的VPC的增长而增长,且所述第四档位数范围中的档位数随所述第四空闲块组中的空闲块的VPC增长的增长速度小于所述第一预设速度。第二方面,提供了一种垃圾回收装置,所述装置包括:获取模块,用于获取各个空闲块的有效页计数VPC;第一确定模块,用于根据该各个空闲块的VPC,确定第一空闲块组和第二空闲块组,该第一空闲块组包括多个VPC小于或等于第一阈值的空闲块,该第二空闲块组包括该第一空闲块组以外的空闲块;第一档位划分模块,用于根据第一档位数范围中的档位数对该第一空闲块组进行档位划分,该第一档位数范围中的档位数随着该第一空闲块组中的空闲块的VPC的增长而增长,且该第一档位数范围中的档位数随该第一空闲块组中的空闲块的VPC增长的增长速度大于第一预设速度;垃圾回收模块,用于按照划分后的档位,从该第一空闲块组和第二空闲块组中确定指定空闲块,并对指定空闲块进行垃圾回收。结合第二方面,在该第二方面的第一种可能实现方式中,所述装置还包括:第二档位划分模块,用于根据第二档位数范围中的档位数对所述第二空闲块组进行档位划分,所述第二档位数范围中的档位数随着所述第二空闲块组中的空闲块的VPC的增长而增长,且所述第二档位数范围中的档位数随所述第二空闲块组中的空闲块的VPC增长的增长速度小于所述第一预设速度。结合上述任一种可能实现方式,在该第二方面的第二种可能实现方式中,所述装置还包括:第二确定模块,用于根据所述第二空闲块组中各个空闲块的VPC,确定第三空闲块组,所述第三空闲块组包括所述第二空闲块组中多个VPC属于指定数值范围的空闲块,根据第三档位数范围中的档位数对所述第三空闲块组进行档位划分,所述第三档位数范围中的档位数随着所述第三空闲块组中的空闲块的VPC的增长而增长,且所述第三档位数范围中的档位数随所述第三空闲块组中的空闲块的VPC增长的增长速度大于所述第一预设速度。结合上述任一种可能实现方式,在该第二方面的第三种可能实现方式中,所述装置还包括:第三确定模块,用于根据所述第二空闲块组中各个空闲块的VPC,确定第四空闲块组,所述第四空闲块组包括所述第二空闲块组中除所述第三空闲块组以外的空闲块;根据第四档位数范围中的档位数对所述第四空闲块组进行档位划分,所述第四档位数范围中的档位数随着所述第四空闲块组中的空闲块的VPC的增长而增长,且所述第四档位数范围中的档位数随所述第四空闲块组中的空闲块的VPC增长的增长速度小于所述第一预设速度。本专利技术实施例提供了一种垃圾回收方法和装置,通过获取各个空闲块的有效页计数VPC;根据该各个空闲块的VPC,确定第一空闲块组和第二空闲块组,该第一空闲块组包括多个VPC小于或等于第一阈值的空闲块,该第二空闲块组包括该第一空闲块组以外的空闲块;根据第一档位数范围中的档位数对该第一空闲块组进行档位划分,该第一档位数范围中的档位数的增长速度大于第一预设速度,且第一空闲块组中的空闲块VPC的增长与该第一档位数范围中的档位数的增长速度呈正相关关系;按照划分后的档位,从该第一空闲块组和第二空闲块组中确定指定空闲块,并对指定空闲块进行垃圾回收。采用本专利技术实施例提供的方案,对空闲块进行非线性分档,避免了线性分档的大多数块集中于某一个档位所导致的GC进行困难的问题,同时避免了当VPC发生变化时所导致的频繁链表操作,在不增加计算开销的情况下,减小了GC的延迟,降低了计算开销。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,本文档来自技高网...
垃圾回收方法和装置

【技术保护点】
一种垃圾回收方法,其特征在于,所述方法包括:获取各个空闲块的有效页计数VPC;根据所述各个空闲块的VPC,确定第一空闲块组和第二空闲块组,所述第一空闲块组包括多个VPC小于或等于第一阈值的空闲块,所述第二空闲块组包括所述第一空闲块组以外的空闲块;根据第一档位数范围中的档位数对所述第一空闲块组进行档位划分,所述第一档位数范围中的档位数的增长速度大于第一预设速度,且第一空闲块组中的空闲块VPC的增长与所述第一档位数范围中的档位数的增长速度呈正相关关系;按照划分后的档位,从所述第一空闲块组和第二空闲块组中确定指定空闲块,并对指定空闲块进行垃圾回收。

【技术特征摘要】
1.一种垃圾回收方法,其特征在于,所述方法包括:获取各个空闲块的有效页计数VPC;根据所述各个空闲块的VPC,确定第一空闲块组和第二空闲块组,所述第一空闲块组包括多个VPC小于或等于第一阈值的空闲块,所述第二空闲块组包括所述第一空闲块组以外的空闲块;根据第一档位数范围中的档位数对所述第一空闲块组进行档位划分,所述第一档位数范围中的档位数随着所述第一空闲块组中的空闲块的VPC的增长而增长,且所述第一档位数范围中的档位数随所述第一空闲块组中的空闲块的VPC增长的增长速度大于第一预设速度;按照划分后的档位,从所述第一空闲块组和第二空闲块组中确定指定空闲块,并对指定空闲块进行垃圾回收。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据第二档位数范围中的档位数对所述第二空闲块组进行档位划分,所述第二档位数范围中的档位数随着所述第二空闲块组中的空闲块的VPC的增长而增长,且所述第二档位数范围中的档位数随所述第二空闲块组中的空闲块的VPC增长的增长速度小于所述第一预设速度。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:根据所述第二空闲块组中各个空闲块的VPC,确定第三空闲块组,所述第三空闲块组包括所述第二空闲块组中多个VPC属于指定数值范围的空闲块,根据第三档位数范围中的档位数对所述第三空闲块组进行档位划分,所述第三档位数范围中的档位数随着所述第三空闲块组中的空闲块的VPC的增长而增长,且所述第三档位数范围中的档位数随所述第三空闲块组中的空闲块的VPC增长的增长速度大于所述第一预设速度。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:根据所述第二空闲块组中各个空闲块的VPC,确定第四空闲块组,所述第四空闲块组包括所述第二空闲块组中除所述第三空闲块组以外的空闲块;根据第四档位数范围中的档位数对所述第四空闲块组进行档位划分,所述第四档位数范围中的档位数随着所述第四空闲块组中的空闲块的VPC的增长而增长,且所述第四档位数范围中的档位数随所述第四空闲块组中的空闲块的VPC增长的增长速度小于所述第一预设速度。5.一种垃圾回收装置,其特征在于,所述装置包括:获取模块,用于获...

【专利技术属性】
技术研发人员:吕建涛王震宇苏杰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1