一种面向SSD去重的数据分配方法及系统技术方案

技术编号:22466891 阅读:14 留言:0更新日期:2019-11-06 10:47
本发明专利技术公开了一种面向SSD去重的数据分配方法及系统,属于固态存储领域,包括:以有效的地址引用计数作为并行单元或SSD的读热度,预先建立一个读热度表,用于分别记录所述SSD以及其中各并行单元的读热度;按照如下步骤处理每一个写请求:若可以去重,则获得目标数据的重复数据所在物理页,从而得到得到写请求的逻辑地址lpn所映射到的物理地址ppn,若不可以去重,则在读热度小于平均读热度的并行单元中分配一个空闲的物理页并写入数据,从而得到得到写请求的逻辑地址lpn所映射到的物理地址ppn;根据所述写请求的类型和地址映射关系更新热度表以及映射表。本发明专利技术能够有效解决去重应用在SSD中带来的读性能下降的问题。

A data distribution method and system for SSD de duplication

【技术实现步骤摘要】
一种面向SSD去重的数据分配方法及系统
本专利技术属于固态存储领域,更具体地,涉及一种面向SSD去重的数据分配方法及系统。
技术介绍
近年来,SSD(SolidStateDisk,固态盘)由于其随机访问速度快,功耗低,健壮性强等特点逐步取代传统的HDD存储,并被广泛应用在当代各种存储系统中。尽管SSD有很多杰出的特性,但是由于底层的flash存储介质的擦写次数有限,SSD的使用寿命较短,这严重阻碍了SSD在可靠性敏感的产品系统中的大规模部署。数据去重作为一种有效的空间节省技术,被广泛应用于备份系统和主存储系统。由于只保留一份重复数据的副本和对应的指纹,数据去重技术可以消除重复的写数据,从而减少写入flash存储设备的数据量,这些减少的数据写入量可以直接提升SSD的使用寿命。目前,面向SSD去重的研究大多数都是关注去重技术部署在SSD中所带来的地址映射和指纹管理等问题,而没有探究去重技术对flash存储数据物理布局和并行性的影响。在去重的过程中,重复的写请求会被取消,其对应的逻辑地址会指向重复数据所在的物理单元,这会使得部分存储的数据有多个地址引用,从而产生高度去重的数据。由于当前的数据分配方式都是基于1-1映射(一个逻辑地址映射到唯一的物理地址)设计的,分配的并行单元某种程度上是随机分配的。这种分配的随机性使得高度去重的数据可能集中在小部分并行单元上,造成不均匀的读分布。在采用数据去重技术的SSD中,不均匀的读分布一方面会降低SSD的读并行性,从而直接降低SSD的读性能,另一方面会增加访问竞争,从而导致系统整体性能下降;在混合读写且访问密集的情况下,不均匀的读分布所带来的问题尤其突出。总的来说,去重应用在SSD中会使得读分布不均匀,导致读性能下降。
技术实现思路
针对现有技术的缺陷和改进需求,本专利技术提供了一种面向SSD去重的数据分配方法及系统,旨在解决去重应用在SSD中带来的读性能下降的问题。为实现上述目的,按照本专利技术的第一方面,提供了一种面向SSD去重的数据分配方法,包括:以有效的地址引用计数作为并行单元或SSD的读热度,预先建立一个读热度表,用于分别记录SSD以及其中各并行单元的读热度;按照如下步骤处理每一个写请求:(1)判断写请求是否可以去重,若是,则转入步骤(2);若否,则根据SSD的读热度计算并行单元的平均读热度后,转入步骤(3);(2)获得目标数据的重复数据所在的物理页,从而得到写请求的逻辑地址lpn所映射到的物理地址ppn,转入步骤(4);(3)获得一个读热度小于平均读热度的并行单元作为分配单元,并在分配单元中为写请求分配一个空闲的物理页后写入目标数据,从而得到写请求的逻辑地址lpn所映射到的物理地址ppn;(4)根据写请求的类型和地址映射关系更新热度表;其中,目标数据为写请求的写入数据。本专利技术所提供的面向SSD去重的数据分配方法,通过维护各并行单元的读热度,并筛选出其中读热度较低(低于平均读热度)的并行单元进行数据分配,由此能够保证各并行单元的读热度较为均衡,从而避免了高度去重的数据聚集在极小部分的并行单元上,使得读分布更均匀;由于本专利技术能够使得读分布更均匀,一方面可以降低请求之间的竞争,使得队列等待的时间缩短,提升了系统的整体性能,另一方面通过将高度去重的数据均匀分布在各个并行单元上,在对写请求分配空闲的物理页时,减少了逻辑上连续的写请求定向到相同的并行单元上的概率,提高了SSD内部的读并行性。总的来说,本专利技术能够有效解决去重应用在SSD中带来的读性能下降的问题。进一步地,步骤(1)中,判断写请求是否可以去重,其方法包括:对数写请求进行指纹计算,以得到目标数据的指纹f;查找指纹表,若成功找到指纹f,则判定写请求可以去重;否则,判定写请求不能进行去重;其中,SSD中的指纹表用于维护所有已写入flash存储的数据块的指纹以及对应的物理地址。进一步地,步骤(3)还包括:将目标数据写入新分配的物理页后,将目标数据的指纹f以及所分配的物理页的地址插入到指纹表中,以更新指纹表。进一步地,进行指纹计算时,以4KB大小为计算单位,以获得尽可能大的去重率并降低复杂度。进一步地,步骤(3)中,获得一个读热度小于平均读热度的并行单元作为分配单元,其方法包括:(31)获得当前的轮询令牌T所对应的并行单元,并从读热度表中获得该并行单元的读热度,若小于平均读热度,则将该并行单元作为分配单元,并转入步骤(33);否则,转入步骤(32);(32)设置轮询令牌为T=(T+1)modN,以使得轮询令牌指向下一个被轮询的并行单元,转入步骤(31);(33)设置轮询令牌为T=(T+1)modN,以使得轮询令牌指向下一个被轮询的并行单元,操作结束;其中,轮询令牌用于指示被轮询的并行单元,在系统启动的初始时刻,轮询令牌被初始化为0;N为SSD中的并行单元总数;mod表示取模运算。本专利技术通过轮询的方式获取读热度较低(低于平均读热度)的并行单元,查询开销较小,并且有利于保证读分布的均匀性。进一步地,步骤(4)包括:根据写请求的逻辑地址lpn查找映射表,得到映射条目E;从映射条目E中获得逻辑地址lpn的状态,若逻辑地址lpn是首次被写入,则获得物理地址ppn所在的并行单元c_new,将并行单元c_new和SSD的读热度均增加Δr;否则,获得写入目标数据前、后,逻辑地址lpn所映射到的物理地址所在的并行单元c_old和c_new,将并行单元c_old的读热度减少Δr,将并行单元c_new的读热度增加Δr;其中,SSD中的映射表用于维护逻辑地址和物理地址的映射关系,以及逻辑地址的状态,Δr为读热度的更新步长。进一步地,步骤(4)还包括:将映射表中,逻辑地址lpn所在的映射条目的逻辑地址更新为物理地址ppn,并更新该条目中逻辑地址lpn的状态,以指示逻辑地址lpn已写入数据,从而实现对映射表的更新。按照本专利技术的第二方面,提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;处理器用于读取计算机可读存储介质中存储的可执行程序,执行本专利技术第一方面提供的面向SSD去重的数据分配方法。总体而言,通过本专利技术所构思的以上技术方案,能够取得以下有益效果:(1)本专利技术所提供的面向SSD去重的数据分配方法,通过维护各并行单元的读热度,并筛选出其中读热度较低的并行单元进行数据分配,由此能够保证各并行单元的读热度较为均衡,从而避免了高度去重的数据聚集在极小部分的并行单元上,使得读分布更均匀;由于本专利技术能够使得读分布更均匀,一方面可以降低请求之间的竞争,使得队列等待的时间缩短,提升了系统的整体性能,另一方面通过将高度去重的数据均匀分布在各个并行单元上,在对写请求分配空闲的物理页时,减少了逻辑上连续的写请求定向到相同的并行单元上的概率,提高了SSD内部的读并行性。总的来说,本专利技术能够有效解决去重应用在SSD中带来的读性能下降的问题。(2)本专利技术所提供的面向SSD去重的数据分配方法,通过轮询的方式获取读热度较低的并行单元,查询开销较小,并且有利于保证读分布的均匀性。附图说明图1为现有的NAND型闪存芯片的结构示意图;图2为本专利技术实施例提供的面向SSD去重的数据分配方法流程图;图3为本专利技术实施例提供的系统架构及元数据示意图;图4为本文档来自技高网
...

【技术保护点】
1.一种面向SSD去重的数据分配方法,其特征在于,包括:以有效的地址引用计数作为并行单元或SSD的读热度,预先建立一个读热度表,用于分别记录所述SSD以及其中各并行单元的读热度;按照如下步骤处理每一个写请求:(1)判断所述写请求是否可以去重,若是,则转入步骤(2);若否,则根据所述SSD的读热度计算并行单元的平均读热度后,转入步骤(3);(2)获得目标数据的重复数据所在的物理页,从而得到所述写请求的逻辑地址lpn所映射到的物理地址ppn,转入步骤(4);(3)获得一个读热度小于所述平均读热度的并行单元作为分配单元,并在所述分配单元中为所述写请求分配一个空闲的物理页后写入目标数据,从而得到所述写请求的逻辑地址lpn所映射到的物理地址ppn;(4)根据所述写请求的类型和地址映射关系更新所述热度表;其中,所述目标数据为所述写请求的写入数据。

【技术特征摘要】
1.一种面向SSD去重的数据分配方法,其特征在于,包括:以有效的地址引用计数作为并行单元或SSD的读热度,预先建立一个读热度表,用于分别记录所述SSD以及其中各并行单元的读热度;按照如下步骤处理每一个写请求:(1)判断所述写请求是否可以去重,若是,则转入步骤(2);若否,则根据所述SSD的读热度计算并行单元的平均读热度后,转入步骤(3);(2)获得目标数据的重复数据所在的物理页,从而得到所述写请求的逻辑地址lpn所映射到的物理地址ppn,转入步骤(4);(3)获得一个读热度小于所述平均读热度的并行单元作为分配单元,并在所述分配单元中为所述写请求分配一个空闲的物理页后写入目标数据,从而得到所述写请求的逻辑地址lpn所映射到的物理地址ppn;(4)根据所述写请求的类型和地址映射关系更新所述热度表;其中,所述目标数据为所述写请求的写入数据。2.如权利要求1所述的面向SSD去重的数据分配方法,其特征在于,所述步骤(1)中,判断所述写请求是否可以去重,其方法包括:对所述写请求进行指纹计算,以得到所述目标数据的指纹f;查找指纹表,若成功找到所述指纹f,则判定所述写请求可以去重;否则,判定所述写请求不能进行去重;其中,SSD中的指纹表用于维护所有已写入flash存储的数据块的指纹以及对应的物理地址。3.如权利要求2所述的面向SSD去重的数据分配方法,其特征在于,所述步骤(3)还包括:将所述目标数据写入新分配的物理页后,将所述目标数据的指纹f以及所分配的物理页的地址插入到所述指纹表中,以更新所述指纹表。4.如权利要求2所述的面向SSD去重的数据分配方法,其特征在于,进行指纹计算时,以4KB大小为计算单位。5.如权利要求1所述的面向SSD去重的数据分配方法,其特征在于,所述步骤(3)中,获得一个读热度小于所述平均读热度的并行单元作为分配单元,其方法包括:(31)获得当前的轮询令牌T所对应的并行...

【专利技术属性】
技术研发人员:王芳冯丹胡燏翀卢梦婷
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1