一种固态硬盘数据迁移的方法及装置技术领域
本发明涉及存储技术领域,特别是涉及一种固态硬盘数据迁移的方法及装置。
背景技术
随着计算机技术的飞速发展和数字化时代的到来,在日常生活、科学研究以及公
司业务中频繁使用数字化和网络化技术,使得数据呈现爆炸式增长,而数据的产生往往是
需要承载或记录的,这就迫使存储技术快速发展以容纳快速增长的数据。
HDD(Hard Disk Drive,机械硬盘),即硬盘驱动器。最基本的电脑存储器,电脑硬
盘C盘、D盘为磁盘分区都属于硬盘驱动器。但是机械硬盘由于存储和读写跨度慢、延迟较
大、启动慢、产生大量的磁盘碎片、噪音大、容易发生机械故障、工作温度范围(5-55℃)较窄
和抗震动效果极差,渐渐的满足不了现代计算机的高要求。SSD(Solid State Drives,固态
硬盘),也叫固盘,应运而生。
SSD是用固态电子存储芯片阵列制成的硬盘,由控制单元和存储单元(FLASH芯片、
DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相
同,在产品外形和尺寸上也完全与普通硬盘一致。固态硬盘的存储介质分为两种,一种是采
用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质。由于其稳定的性能
而且有效的克服了上述机械硬盘的缺点,SSD的应用越来越广。
但是由于SSD的价格比HDD要高很多,目前存储系统应用较多的是HDD与SSD混合的
存储阵列,SSD在混合存储阵列中被用作缓存(Cache)。SSD缓存中存放的是热点数据的副
本,当业务发生改变时,也就是当前的热点数据发生变化时,需要将当前新的热点数据迁移
到SSD缓存中,而将之前的旧热点数据迁移出去,这样SSD Cache才能提供较好的加速效果。
对于热点数据切换的方法,现有技术为基于LRU最近最少使用页面置换算法
(Least Recently Used),即首先淘汰最长时间未被使用的页面;和基于LFU最近最不常用
页面置换算法(Least Frequently Used),即淘汰一定时期内被访问次数最少的页面。基于
这两种算法在热点进行切换时,由于该两种算法无法识别热点数据是否发生了切换,只能
按照算法的要求对数据进行换进换出,这就导致了热点数据替换不及时且替换时间太长。
在切换过程中,若热点数据无法快速进入缓存,则会导致整个SSD Cache的加速效果较差,
系统的访问响应时间较长,访问率较低。
发明内容
本发明实施例的目的是提供一种固态硬盘的数据迁移的方法及装置,在热点数据
发生变化时,提供良好的加速效果,提高了系统响应时间和访问率。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种固态硬盘的数据迁移的方法,包括:
在缓存数据池和预缓存数据池分别建立缓存队列和预缓存队列,所述缓存队列包
括缓存数据块的访问热度信息,所述预缓存队列包括未缓存数据块的访问热度信息;所述
数据块对应的对象位于队列的级别随着访问热度的增加而提升;
计算当前固态硬盘中缓存数据的缓存命中率;
根据所述缓存命中率确定所述缓存队列以及所述预缓存队列中各所述对象的当
前级别的提升跨度,更新所述缓存队列以及所述预缓存队列;
当所述预缓存队列中所述对象的当前级别达到预设级别时,将所述对象迁入所述
缓存队列,并将其对应的所述数据块写入缓存。
优选的,在所述根据所述缓存命中率确定所述缓存队列以及所述预缓存队列中各
所述对象的当前级别的提升跨度,更新所述缓存队列以及所述预缓存队列之后还包括:
当所述缓存队列中所述对象的当前级别达到第二预设级别时,将所述对象迁出所
述缓存队列,并将其对应的所述数据块从所述缓存中擦除。
优选的,所述根据所述缓存命中率确定所述缓存队列以及所述预缓存队列中各所
述对象的当前级别的提升跨度为:
当所述缓存命中率位于第一预设值与第二预设值之间时,所述提升跨度为预设第
一跨度值,所述第一预设值小于所述第二预设值;
当所述缓存命中率大于所述第二预设值时,所述提升跨度为小于所述预设第一跨
度值的数值;
当所述缓存命中率小于所述第一预设值时,所述提升跨度为大于所述预设第一跨
度值的数值。
优选的,在所述缓存数据池和预缓存数据池建立缓存队列和预缓存队列之前,还
包括:
获取所述对象的配置信息,所述配置信息为以下任意一项或任意组合:
物理块标识参数、访问次数参数以及脏块参数;
其中,所述物理块标识参数为所述对象对应的缓存的数据块在机械硬盘的物理块
号;所述访问次数参数为所述缓存数据块被命中的次数;所述脏块参数为未被写入内存或
所述缓存的修改过的数据块。
优选的,所述计算当前固态硬盘中缓存数据的缓存命中率为:
判断当前访问数据块是否为所述缓存数据;
当判定所述当前访问数据块为所述缓存数据时,则利用命中所述当前访问数据块
的次数与总访问次数的比率计算所述缓存命中率。
优选的,所述判断当前数据块是否为所述缓存数据为:
创建哈希链表,所述哈希链表的哈希键值对应所述对象的所述物理块标识参数;
获取所述当前数据块的物理块号,并计算所述哈希键值;
根据所述哈希键值在所述哈希链表中匹配哈希桶;
当判定所述哈希桶中存在与所述当前数据块的物理块号相等的所述物理块标识
参数时,根据所述物理块标识参数确定对应的所述对象;
当所述对象与所述缓存数据块相对应时,则判定所述当前数据块为所述缓存数
据。
本发明实施例另一方面提供了一种固态硬盘的数据迁移的装置,包括:
建立模块,用于在缓存数据池和预缓存数据池分别建立缓存队列和预缓存队列,
所述缓存队列包括缓存数据块的访问热度信息,所述预缓存队列包括未缓存数据块的访问
热度信息;所述数据块对应的对象位于队列的级别随着访问热度的增加而提升;
计算模块,用于计算当前固态硬盘中缓存数据的缓存命中率;
更新模块,用于根据所述缓存命中率确定所述缓存队列以及所述预缓存队列中各
所述对象的当前级别的提升跨度,更新所述缓存队列以及所述预缓存队列;
迁入模块,用于当所述预缓存队列中所述对象的当前级别达到预设级别时,将所
述对象迁入所述缓存队列,并将其对应的所述数据块写入缓存。
优选的,还包括:
迁出模块,用于当所述缓存队列中所述对象的当前级别达到第二预设级别时,将
所述对象迁出所述缓存队列,并将其对应的所述数据块从所述缓存中擦除。
优选的,所述根据所述缓存命中率确定所述缓存队列以及所述预缓存队列中各所
述对象的当前级别的提升跨度为:
当所述缓存命中率位于第一预设值与第二预设值之间时,所述提升跨度为预设第
一跨度值,所述第一预设值小于所述第二预设值;
当所述缓存命中率大于所述第二预设值时,所述提升跨度为小于所述预设第一跨
度值的数值;
当所述缓存命中率小于所述第一预设值时,所述提升跨度为大于所述预设第一跨
度值的数值。
优选的,所述计算模块包括:
判断单元,用于判断当前访问数据块是否为所述缓存数据;
计算单元,用于当判定所述当前访问数据块为所述缓存数据时,则利用命中所述
当前访问数据块的次数与总访问次数的比率计算所述缓存命中率。
本发明实施例提供了一种固态硬盘数据迁移的方法,通过建立缓存队列和预缓存
队列,根据数据块访问热度的高低将其对应的对象排列于相应的队列中;根据缓存数据的
缓存命中率调整各所述对象级别的提升跨度,然后更新预缓存队列;判断更新后的预缓存
队列中各所述对象的当前级别是否达到预设级别,当所述对象的当前级别达到预设级别
后,将其对应的数据块写入缓存中。
本发明的优点在于根据缓存数据的缓存命中率调整各所述对象级别的提升跨度,
缓存命中率反映了当时缓存数据的访问热度,当缓存命中率较低时,当前缓存的数据不为
热点数据,将提升跨度调整升高,加快预缓存队列中对象级别的升高,当预缓存队列中的对
象的级别达到预设级别时,便将所述对象对应的数据块写入缓存,这样就保证了在热点数
据发生变化后,快速识别切换后的热点数据,从而快速的将当前的热点数据写入缓存,进而
提高固态硬盘缓存的加速效果,提升系统的响应时间以及访问率。
此外,本发明实施例还针对固态硬盘数据迁移的方法提供了相应的实现装置,进
一步使得所述方法更具有实用性,所述装置具有相应的优点。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有
技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发
明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根
据这些附图获得其他的附图。
图1为本发明实施例提供的示例性应用场景的框架示意图;
图2为本发明实施例提供的一种固态硬盘数据迁移方法的流程示意图;
图3为本发明实施例提供的缓存数据池与预缓存数据池的结构示意图;
图4为本发明实施例提供的预缓存队列和缓存队列的原理示意图;
图5为本发明实施例提供的哈希链表的结构示意图;
图6为本发明实施例提供的调整队列提升跨度的流程示意图;
图7为本发明实施例提供的另一种固态硬盘数据迁移方法的流程示意图;
图8为本发明实施例提供的一种固态硬盘数据迁移装置的结构图;
图9为本发明实施例提供的另一种固态硬盘数据迁移装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式
对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是
全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提
下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第
四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及
他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、
系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
本申请的发明人经过研究发现,现有技术无法识别热点数据的是否发生了切换,
只能按照算法要求对数据进行换进换出,这就导致了热点数据替换时间太长,在切换过程
中,热点数据无法快速进入缓存,导致整个SSD Cache的加速效果较差,系统的访问响应时
间较长,访问率较低。鉴于此,本申请通过根据数据块访问热度的高低将其对应的对象排列
于相应的队列中;根据缓存数据的缓存命中率调整各所述对象级别的提升跨度,然后更新
预缓存队列;判断更新后的预缓存队列中各所述对象的当前级别是否达到预设级别,当当
前级别达到预设级别后,将其对应的数据块写入缓存中。通过及时更新缓存命中率调整提
升跨度,实现了快速的识别切换后的热点数据,从而加快热点数据写入缓存,这样就保证了
在热点数据发生变化后,提高固态硬盘缓存的加速效果,提升系统的响应时间以及访问率。
基于上述本发明实施例的技术方案,本申请实施例的应用场景之一,可以通过客
户端101与用户之间的交互来实现。如图1所示,在这一应用场景中,客户端101使用SSD与
HDD混合的存储阵列,用户访问客户端101。用户访问次数较多的数据块为了便于用户读写,
将其放入SSD缓存中暂时存储,当用户进行下一次访问时直接从缓存中读取。当用户访问内
容发生变化时,缓存没有存储相应的数据块,那么用户访问时响应时间就会变长,客户端
101通过建立缓存队列和预缓存队列,根据数据块访问热度的高低将其对应的对象排列于
相应的队列中;通过及时更新缓存命中率调整缓存队列和预缓存队列提升跨度,这样就可
快速识别当前访问的数据(热点数据),将热点数据块写入缓存中,提高了访问率,有效的缩
短了响应时间。其中,访问信息可以是通过客户端101与服务器102之间进行交互来进行访
问服务器上的信息,或者,是用于直接访问客户端101自身的信息,本申请实施例对此不做
限定。
需要注意的是,上述应用场景仅是为了便于理解本申请的思想和原理而示出,本
申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何
场景。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实
施方式。
实施例一:
首先参见图2,图2为本发明实施例提供的一种固态硬盘数据迁移的方法的流程示
意图,本发明实施例可包括以下内容:
S201:在缓存数据池和预缓存数据池分别建立缓存队列和预缓存队列,所述缓存
队列包括缓存数据块的访问热度信息,所述预缓存队列包括未缓存数据块的访问热度信
息;所述数据块对应的对象位于队列的级别随着访问热度的增加而提升。
缓存数据池(cache_pool)和预缓存数据池(pre_cache_pool)的结构如图3所示,
两个池中的数据可通过两段连续的内存进行保存,这两段内存可按照对象(entry)大小为
单位进行等大的划分并编号,两个池中entry的个数相同。entry的参数可包括以下任意一
项或任意组合:
表参数list、哈希表参数hlist、物理块标识参数oblock、访问次数参数hit_count
以及脏块参数dirty;
其中,oblock为entry对应的SSD设备缓存的数据块在HDD设备上的物理块号,这样
entry的编号与oblock构成了SSD物理块与HHD物理块之间缓存关系的空间映射关系;所述
访问次数参数为缓存数据块被命中的次数,反映了entry对应的数据块的热度,在缓存数据
块被命中后加1;脏数据表示源数据已被修改,但还未写入内存或缓存。
缓存数据池中的entry是对SSD设备物理块的抽象,entry的个数与SSD设备中物理
块的个数相同并与其一一对应,例如entry0对应SSD设备中块号为0的物理块。而预缓存数
据池中的entry为未被缓存的数据块的热度信息。
初始化时,SSD设备的物理块没有缓存数据,把数据池中entry放在一个空闲链表
中,当HDD的数据块需要缓存到SSD中时,从空闲链表中获取一个空闲entry,相对应的SSD物
理块上写入数据。
可采用多级队列mq(multi quene)算法在所述缓存数据池和预缓存数据池分别建
立缓存队列(cache_queue)和预缓存队列(pre_cache_queue),mq算法不仅可用于维护SSD
设备中的缓存数据块的热度信息,还可以维护该设备中未缓存的数据块的热度信息,mq算
法将这些热度信息放置在多级队列中,如图4所示,级别越高的队列,对应着的数据块的访
问热度越大,例如,mq算法建立了2个16级的队列,一个为缓存队列,一个为预缓存队列,第
16级为该队列的最高级,对应着热度最大的数据块。
S202:计算当前固态硬盘中缓存数据的缓存命中率。
在计算缓存命中率之前,应该先去判断当前访问数据块是否为所述缓存数据;当
判定所述当前数据块为所述缓存数据时,则利用命中所述当前访问数据块的次数与总访问
次数的比率计算所述缓存命中率。
判断当前数据块是否为所述缓存数据块具体为:
如图5所示,创建哈希链表,所述哈希链表的哈希键值对应所述对象的所述物理块
标识参数;
获取所述当前数据块的物理块号,并计算所述哈希键值;
根据所述哈希键值在所述哈希链表中匹配哈希桶;
当判定所述哈希桶中存在与所述当前数据块的物理块号相等的所述物理块标识
参数时,根据所述物理块标识参数确定对应的所述对象;
当所述对象与所述缓存数据块相对应时,则判定所述当前数据块为所述缓存数据
块。
缓存命中率为命中缓存的次数与总访问次数的占比,即当前固态硬盘中缓存数据
被访问的次数与总次数的比率,反映了当前缓存的数据的热度信息,进一步可反映访问时
的响应时间以及访问率,也就是反映了当前硬件的性能状况。所述缓存命中率与性能表现
成正比,故缓存命中率可用来衡量性能表现情况。
根据缓存命中率的大小,可设置三个范围,即:
所述第一预设范围为0-20%;
所述第二预设范围为20%-50%;
所述第三预设范围为50%-100%。
当所述缓存命中率在第一预设范围时,表示性能差,即当前缓存数据块的访问热
度较低,已经不是最新的访问热点数据了;
当所述缓存命中率在第二预设范围时,表示性能中等,即当前缓存数据块的访问
热度一般,不是最新的访问热点数据了,但也数据热点数据;
当所述缓存命中率在第三预设范围时,表示性能优异,即当前缓存数据块的访问
热度高,是最新的访问热点数据。
需要说明的是,上述所述三级范围仅仅为一个优选的方案,在实际操作中并不受
此限定;响应的范围对应的值也是优选的方案,在实际操作中,本领域技术人员可根据实际
情况进行自定义。
S203:根据所述缓存命中率确定所述缓存队列以及所述预缓存队列中各所述对象
的当前级别的提升跨度,更新所述缓存队列以及所述预缓存队列。
给所述缓存队列和预缓存队列设置对象级别的提升跨度,即在所述对象随着当前
热度在多级队列中进行排序时的级别跨度。例如,设置当前队列中级别跨度为1,当判断对
象的热度发生变化后,假设当前该对象处于6级,则当前热度发生变化后,如果热度增加则
可提升到7级;如果热度降低,则降低到5级。当然,上述例子是为了更好的理解本申请方案,
实际中并不受限于此。
根据所述缓存命中率(性能表现情况)调整提升跨度时,如图6所示,可为:
当所述缓存命中率位于第一预设值与第二预设值之间时,所述提升跨度为预设第
一跨度值,所述第一预设值小于所述第二预设值;
当所述缓存命中率大于所述第二预设值时,所述提升跨度为小于所述预设第一跨
度值的数值;
当所述缓存命中率小于所述第一预设值时,所述提升跨度为大于所述预设第一跨
度值的数值。
根据所述缓存命中率调整提升跨度,举例子来说,例如:
所述第一预设范围为0-20%,所述预缓存队列以及缓存队列的提升跨度增大;
所述第二预设范围为20%-50%,所述预缓存队列以及缓存队列的提升跨度不变;
所述第三预设范围为50%-100%,所述预缓存队列以及缓存队列的提升跨度减
小。
当所述缓存命中率在第一预设范围时,表示性能差,即当前缓存数据块的访问热
度较低,已经不是最新的访问热点数据了,故应该加快提升跨度,使得预缓存队列以及缓存
队列的所述对象在排序时快速跨级,从而加快热点数据写入缓存和非热点数据的迁出缓
存;
当所述缓存命中率在第二预设范围时,表示性能中等,即当前缓存数据块的访问
热度一般,不是最新的访问热点数据了,但也数据热点数据,故保持当前的跨度,使得预缓
存队列以及缓存队列的所述对象在排序时保持稳定的状态;
当所述缓存命中率在第三预设范围时,表示性能好,即当前缓存数据块的访问热
度高,是最新的访问热点数据,故应该降低提升跨度,使得预缓存队列以及缓存队列的所述
对象在排序时级别跨度较小,使得热点数据长时间保存在缓存中,避免非热点数据写入缓
存。
需要说明的是,在上述三级范围内对提升跨度的进行调整仅仅为一个优选的方
案,在实际操作中并不受此限定;响应的范围对应的值也是优选的方案,在实际操作中,本
领域技术人员可根据实际情况进行自定义。
需要说明的是,在具体实施过程中,S201中的热度信息是不断变化的,为了保证及
时对队列进行更新,快速识别当前的热点数据,对于缓存命中率的计算和相对的调整提升
跨度可实时进行,当然,优选的可周期性进行。例如,设定固定时间如5ms,在5ms到达后,便
对缓存命中率进行一次计算,相应的对提升跨度进行一次调整,并将队列进行更新。
S204:当所述预缓存队列中所述对象的当前级别达到预设级别时,将所述对象迁
入所述缓存队列,并将其对应的所述数据块写入缓存。
更新后的预缓存队列中各所述对象处于新的级别,可与预设的阈值相比较,如果
超过预设级别,则说明当前预缓存队列中的对象对应的数据为热点数据,将该对象移入缓
存队列中,对应着数据块写入缓存中。举例来说,如图4所示假设预缓存队列中对象entry级
别为14,更新后的级别为15,而预设级别为15,即当预缓存队列中的对象处于15级及以上
时,将该对象迁入缓存队列,而该对象迁入后,根据与缓存队列中的对象热度信息相比,将
其排列在级别为2的队列中。当然,该例子为更好的理解本申请的技术方案,实际操作中并
不受限于此。
由上可知,本发明实施例提供了一种固态硬盘数据迁移的方法,通过建立缓存队
列和预缓存队列,根据数据块访问热度的高低将其对应的对象排列于相应的队列中;根据
缓存数据的缓存命中率调整各所述对象级别的提升跨度,然后更新预缓存队列;判断更新
后的预缓存队列中各所述对象的当前级别是否达到预设级别,当当前级别达到阈值后,将
其对应的数据块写入缓存中。通过及时更新缓存命中率调整提升跨度,实现了快速的识别
切换后的热点数据,从而加快热点数据写入缓存,这样就保证了在热点数据发生变化后,提
高固态硬盘缓存的加速效果,提升系统的响应时间以及访问率。
考虑在实际操作过程中,为了更方便的使用该方法,基于上述实施例做了部分改
进。
实施例二:
参见图7,图7为本发明实施例提供的另一种固态硬盘数据迁移的方法的流程示意
图,具体的可包括以下内容:
S701-S704:具体的与实施例一的S201-S204所描述一致,此处不再赘述。
S705:当所述缓存队列中所述对象的当前级别达到第二预设级别时,将所述对象
迁出所述缓存队列,并将其对应的所述数据块从所述缓存中擦除。
具体的,更新后的缓存队列中各所述对象处于新的级别,可与预设的级别相比较,
如果低于预设级别,则说明当前缓存队列中的对象对应的数据不为热点数据,将该对象移
出缓存队列中,对应着数据块从缓存中擦除。举例来说,假设缓存队列中对象entry级别为
3,更新后的级别为2,而预设级别为2,即当缓存队列中的对象处于2级及以下时,将该对象
对应的数据不是热点数据,应该迁出缓存队列,进一步的,将其对应的数据块从缓存中擦
除。当然,该例子为更好的理解本申请的技术方案,实际操作中并不受限于此。
由上可知,本发明实施例基于实施例一,通过建立缓存队列和预缓存队列,根据数
据块访问热度的高低将其对应的对象排列于相应的队列中;通过及时更新缓存命中率调整
缓存队列和预缓存队列提升跨度,实现了快速的识别切换后的热点数据,从而加快热点数
据写入缓存,这样就保证了在热点数据发生变化后,提高固态硬盘缓存的加速效果,提升系
统的响应时间以及访问率;而且还将缓存中不是热点数据的数据块擦除,增大缓存的剩余
空间,一定程度上有利于提升运算速度,而且,通过及时擦除非热点数据,可以有效的迁入
热点数据,在缓存空间占用率高的时候便可不浪费时间去进行清理缓存,节省时间和人力。
本发明实施例还针对固态硬盘数据迁移的方法提供了相应的实现装置,进一步使
得所述方法更具有实用性。下面对本发明实施例提供的一种固态硬盘数据迁移的装置进行
介绍,下文描述的固态硬盘数据迁移的装置与上文描述的固态硬盘数据迁移的方法可相互
对应参照。
实施例三:
参见图8,图8为本发明实施例提供的一种固态硬盘数据迁移装置的结构图,该装
置可包括:
建立模块801,用于在缓存数据池和预缓存数据池分别建立缓存队列和预缓存队
列,所述缓存队列包括缓存数据块的访问热度信息,所述预缓存队列包括未缓存数据块的
访问热度信息;所述数据块对应的对象位于队列的级别随着访问热度的增加而提升。
计算模块802,用于计算当前固态硬盘中缓存数据的缓存命中率。
所述计算模块包括:
判断单元8021,用于判断当前访问数据块是否为所述缓存数据;
计算单元8022,用于当判定所述当前访问数据块为所述缓存数据时,则利用命中
所述当前访问数据块的次数与总访问次数的比率计算所述缓存命中率。
所述判断单元进一步包括:
创建子单元80211,用于创建哈希链表,所述哈希链表的哈希键值对应所述对象的
所述物理块标识参数;
获取子单元80212,用于获取所述当前数据块的物理块号,并计算所述哈希键值;
第一确定子单元80213,用于根据所述哈希键值在所述哈希链表中匹配哈希桶;
第二确定子单元80214,用于当判定所述哈希桶中存在与所述当前数据块的物理
块号相等的所述物理块标识参数时,根据所述物理块标识参数确定对应的所述对象;
判断子单元80215,用于当所述对象与所述缓存数据块相对应时,则判定所述当前
数据块为所述缓存数据块。
更新模块803,用于根据所述缓存命中率确定所述缓存队列以及所述预缓存队列
中各所述对象级别的提升跨度,更新所述缓存队列以及所述预缓存队列。
迁入模块804,用于当所述预缓存队列中所述对象的当前级别达到预设级别时,将
所述对象迁入所述缓存队列,并将其对应的所述数据块写入缓存。
本发明实施例所述一种固态硬盘数据迁移装置的各功能模块的功能可根据上述
方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此
处不再赘述。
由上可知,本发明实施例提供了一种固态硬盘数据迁移的装置,通过建立缓存队
列和预缓存队列,根据数据块访问热度的高低将其对应的对象排列于相应的队列中;根据
缓存数据的缓存命中率调整各所述对象级别的提升跨度,然后更新预缓存队列;判断更新
后的预缓存队列中各所述对象的当前级别是否达到预设级别,当当前级别达到预设级别
后,将其对应的数据块写入缓存中。通过及时更新缓存命中率调整提升跨度,实现了快速的
识别了切换后的热点数据,从而加快热点数据写入缓存,这样就保证了在热点数据发生变
化后,提高固态硬盘缓存的加速效果,提升系统的响应时间以及访问率。
实施例四:
此外,在实际操作中,考虑到应用时操作方便,请参见图9,图9为本发明实施例提
供的一种固态硬盘数据迁移装置的结构图。
在实施例三基本功能模块的基础上,还可以包括:
迁出模块905,用于当所述缓存队列中所述对象的当前级别达到第二预设级别时,
将所述对象迁出所述缓存队列,并将其对应的所述数据块从所述缓存中擦除。
本发明实施例所述一种固态硬盘数据迁移装置的各功能模块的功能可根据上述
方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此
处不再赘述。此外,相同功能模块的说明请参照实施例三,此处不再赘述。
本发明实施例在实施例三的基础上,不仅可实现了快速的识别切换后的热点数
据,从而加快热点数据写入缓存,这样就保证了在热点数据发生变化后,提高固态硬盘缓存
的加速效果,提升系统的响应时间以及访问率;而且还将缓存中不是热点数据的数据块擦
除,增大缓存的剩余空间,一定程度上有利于提升运算速度,而且,通过及时擦除非热点数
据,可以有效的迁入热点数据,在缓存空间占用率高的时候便可不浪费时间去进行清理缓
存,节省时间和人力。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它
实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装
置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分
说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元
及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和
软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些
功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业
技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应
认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执
行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存
储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术
领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种固态硬盘数据迁移方法以及装置进行了详细介绍。本
文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于
帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在
不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落
入本发明权利要求的保护范围内。