一种基于SSD的数据获取方法及系统与流程

文档序号:12469960阅读:261来源:国知局
一种基于SSD的数据获取方法及系统与流程

本发明涉及缓存技术领域,更具体地说,涉及一种基于SSD的数据获取方法及系统。



背景技术:

随着大数据时代的来临,对存储系统的性能要求越来越高。缓存中SSD的应用极大地缓解了HDD存储介质的性能瓶颈难题,但与HDD相比,SSD的成本较高,因此在存储系统中只作为缓存使用。读取缓存速度远高于读取内存,因此SSD能否高效利用是决定该系统性能的一个重要因素。

为了保证较高的缓存命中率,缓存中的内容通常按照LRU算法进行替换。它是将最近一段时间内最少访问的数据剔除,提高缓存的利用率。现代计算机普通采用缓存分级机制,一级缓存L1基本在4KB到64KB之间,二级缓存L2的容量则分为128KB、256KB、512KB、1MB、2MB、4MB等。二级缓存是提高CPU性能的关键。通常L1命中率约为80%,L2命中率为16%。其余4%的数据需要从内存调用,这已经是一个相当小的比例。

因此,如何增加缓存命中率,加快响应速度,提升存储系统的性能是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种基于SSD的数据获取方法及系统,用于增加缓存命中率,加快响应速度,提升存储系统的性能。

为实现上述目的,本发明实施例提供了如下技术方案:

一种基于SSD的数据获取方法,包括:

将二级缓存中丢弃的数据存入保留区;其中,所述保留区为从SSD划分出的缓存区;

接收到数据获取请求时,根据所述数据获取请求从一级缓存中查找;若未查找到,则根据所述数据获取请求从二级缓存中查找;

若未查找到,则根据所述数据获取请求从所述保留区中查找;若未查找到,则根据所述数据获取请求从内存中查找。

其中,本方案还包括:

监视所述二级缓存的命中率和所述保留区的命中率;

记录所述保留区内数据被丢弃的时间;

利用所述二级缓存的命中率和所述保留区的命中率,分析所述保留区内数据的数据价值;

根据所述保留区内数据的数据价值和所述保留区内数据被丢弃的时间,动态调整所述保留区内的数据。

其中,利用所述二级缓存的命中率和所述保留区的命中率,分析所述保留区内数据的数据价值包括:

判断所述保留区内目标数据的命中率是否大于与所述保留区同等大小的二级缓存的命中率;

若是,则判定所述目标数据有数据价值;若否,则判定所述目标数据没有数据价值。

其中,根据所述保留区内数据的数据价值和所述保留区内数据被丢弃的时间,动态调整所述保留区内的数据包括:

将所述保留区内有数据价值的数据继续保存在所述保留区内;

将所述保留区内没有数据价值的数据,按照被丢弃的时间进行置换。

其中,本方案若所述保留区内的数据均没有数据价值,则将所述保留区内的所有数据,按照LRU算法进行置换。

其中,所述保留区为从二级缓存中划分出的缓存区。

一种基于SSD的数据获取系统,包括:

丢弃数据存入模块,用于将二级缓存中丢弃的数据存入保留区;其中,所述保留区为从SSD划分出的缓存区;

数据获取模块,用于接收到数据获取请求时,根据所述数据获取请求从一级缓存中查找;若未查找到,则根据所述数据获取请求从二级缓存中查找;若未查找到,则根据所述数据获取请求从所述保留区中查找;若未查找到,则根据所述数据获取请求从内存中查找。

其中,本方案还包括:

监视模块,用于监视所述二级缓存的命中率和所述保留区的命中率,并记录所述保留区内数据被丢弃的时间;

分析模块,用于利用所述二级缓存的命中率和所述保留区的命中率,分析所述保留区内数据的数据价值;

管理模块,用于根据所述保留区内数据的数据价值和所述保留区内数据被丢弃的时间,动态调整所述保留区内的数据。

其中,所述分析模块包括:

判断单元,用于判断所述保留区内目标数据的命中率是否大于与所述保留区同等大小的二级缓存的命中率;若是,则判定所述目标数据有数据价值;若否,则判定所述目标数据没有数据价值。

其中,所述保留区为从二级缓存中划分出的缓存区。

通过以上方案可知,本发明实施例提供的一种基于SSD的数据获取方法及系统,包括:将二级缓存中丢弃的数据存入保留区;其中,所述保留区为从SSD划分出的缓存区;接收到数据获取请求时,根据所述数据获取请求从一级缓存中查找;若未查找到,则根据所述数据获取请求从二级缓存中查找;若未查找到,则根据所述数据获取请求从所述保留区中查找;若未查找到,则根据所述数据获取请求从内存中查找;可见,在本实施例中,通过将二级缓存丢弃的数据存入保留区,提高了SSD缓存命中率,有效地减小需要再用到的数据却被丢弃的概率,减少平均响应时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种基于SSD的数据获取方法流程示意图;

图2为本发明实施例公开的数据获取系统示意图;

图3为本发明实施例公开的保留区数据管理方法流程图;

图4为本发明实施例公开的各模块功能示意图;

图5为本发明实施例公开的一种基于SSD的数据获取系统结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种基于SSD的数据获取方法及系统,用于增加缓存命中率,加快响应速度,提升存储系统的性能。

参见图1,本发明实施例提供的一种基于SSD的数据获取方法,包括:

S101、将二级缓存中丢弃的数据存入保留区;其中,所述保留区为从SSD划分出的缓存区;

具体的,所述保留区可以为从二级缓存中划分出的缓存区。

具体的,目前为了保证较高的缓存命中率,缓存中的内容通常按照LRU算法进行替换。它是将最近一段时间内最少访问的数据剔除,提高缓存的利用率。现代计算机普通采用缓存分级机制,一级缓存L1基本在4KB到64KB之间,二级缓存L2的容量则分为128KB、256KB、512KB、1MB、2MB、4MB等。二级缓存是提高CPU性能的关键。通常L1命中率约为80%,L2命中率为16%。其余4%的数据需要从内存调用。

S102、接收到数据获取请求时,根据所述数据获取请求从一级缓存中查找;若未查找到,则根据所述数据获取请求从二级缓存中查找;若未查找到,则根据所述数据获取请求从所述保留区中查找;若未查找到,则根据所述数据获取请求从内存中查找。

具体的,在本方案中,为了提高缓存区的命中率,在系统缓存中开辟出一块空间,称之为“保留区”,本实施例中简称为S。计算机通常采用二级缓存L1、L2,在本实施例中将保留区设置在L2中,并根据实际情况合适的划出该区域。二级缓存通过LRU算法丢弃的数据并不是直接删除,而是先移至保留区,这些数据在不久前的一段时间被访问过,仍然有再次被访问的可能性。

具体的,参见图2,图中以L2为2MB、保留区为256KB为例,保留区的内容是“最近最少使用”的数据。通常系统中需要的数据首先从L1中查找,若未命中到L2中查找,如再未命中,则到内存继续查找(如图2中虚线所示)。本实施例中的查找顺序按照图2中实线所示,在L2中若未找到所需数据,则到S区中继续查找。若在S区内仍没有查找成功,则转至内存中查找。

其中,参见图3,在本实施例中提供了保留区数据管理方法,包括:

S201、监视所述二级缓存的命中率和所述保留区的命中率;

S202、记录所述保留区内数据被丢弃的时间;

具体的,参见图4,在本实施例中监视模块会记录统计系统中的缓存命中数据。本发明中缓存命中可能发生在L1、L2、S,因此监视模块应该分别记录三块区域的缓存命中情况,尤其是完整记录S区内的出现的缓存命中。通常L1命中概率为80%,由于L2中划出一小片区域作为S,空间减小,所容纳数据也有所减少。以256KB的S为例,L2缓存命中概率为16%*(2MB-256KB)/2MB=14%。由于S区内的数据是LRU算法淘汰的数据,还需要记录这些数据的淘汰时间。

S203、利用所述二级缓存的命中率和所述保留区的命中率,分析所述保留区内数据的数据价值;

其中,利用所述二级缓存的命中率和所述保留区的命中率,分析所述保留区内数据的数据价值包括:

判断所述保留区内目标数据的命中率是否大于与所述保留区同等大小的二级缓存的命中率;

若是,则判定所述目标数据有数据价值;若否,则判定所述目标数据没有数据价值。

具体的,在本实施例中,分析模块根据记录结果,分析保留区内数据的价值。如果保留区的命中率大于同等大小二级缓存的命中率,则认为保留区的数据是有价值的;否则,则认为保留区的数据是没有价值的。保留区数据价值的衡量指标为该区域的命中概率与作为正常L2时的命中概率作比较。如果缓存命中概率减小,则S区的存在并没有提高缓存命中概率。分析模块还要根据监视模块记录的淘汰时间,分析数据价值与淘汰时间之间的关系。

具体的,以256KB的S为例,256KB作为正常的L2时命中概率为16%-14%=2%。那么,如果S区缓存命中大于2%,则认为S区得到了较好的利用。如果缓存命中小于2%,则认为S区的存在并没有提高缓存命中概率。分析模块还要根据监视模块记录的淘汰时间,分析数据价值与淘汰时间之间的关系。

S204、根据所述保留区内数据的数据价值和所述保留区内数据被丢弃的时间,动态调整所述保留区内的数据。

其中,根据所述保留区内数据的数据价值和所述保留区内数据被丢弃的时间,动态调整所述保留区内的数据包括:

将所述保留区内有数据价值的数据继续保存在所述保留区内;

将所述保留区内没有数据价值的数据,按照被丢弃的时间进行置换。

具体的,若所述保留区内的数据均没有数据价值,则将所述保留区内的所有数据,按照LRU算法进行置换。

具体的,在本实施例中,管理模块根据分析结果,动态地调整保留区中的缓存数据。按照数据价值与淘汰时间之间的关系,将有价值的数据继续存在保留区内,将没有价值的数据进行置换。若保留区内的数据都是没有价值的,则管理模块将全部内容按照LRU算法进行置换,相当于S区也作为L2缓存的一部分。

具体的,在本方案中,在SSD的二级缓存中开辟出一部分空间作为保留区,用于放置按照LRU算法丢弃但仍有可能用到的数据。这样就有效地减小需要再用到的数据却被丢弃的概率,减少平均响应时间。且本方案有如下有益效果:

1)从二级缓存中适当分配一块区域作为保留区,几乎没有减小二级缓存的命中概率;

2)即使最近没有用到的数据,但在某个时间曾经访问过,那么现在仍然有再次访问的可能,保留区避免了要用到时却已被丢弃的情况;

3)动态地调整、置换、优化保留区的缓存内容,能够实现最大程度的缓存空间利用率,提高系统性能。

下面对本发明实施例提供的数据获取系统进行介绍,下文描述的数据获取系统与上文描述的数据获取方法可以相互参照。

参见图5,本发明实施例提供的一种基于SSD的数据获取系统,包括:

丢弃数据存入模块100,用于将二级缓存中丢弃的数据存入保留区;其中,所述保留区为从SSD划分出的缓存区;

数据获取模块200,用于接收到数据获取请求时,根据所述数据获取请求从一级缓存中查找;若未查找到,则根据所述数据获取请求从二级缓存中查找;若未查找到,则根据所述数据获取请求从所述保留区中查找;若未查找到,则根据所述数据获取请求从内存中查找。

基于上述技术方案,还包括:

监视模块,用于监视所述二级缓存的命中率和所述保留区的命中率,并记录所述保留区内数据被丢弃的时间;

分析模块,用于利用所述二级缓存的命中率和所述保留区的命中率,分析所述保留区内数据的数据价值;

管理模块,用于根据所述保留区内数据的数据价值和所述保留区内数据被丢弃的时间,动态调整所述保留区内的数据。

基于上述技术方案,所述分析模块包括:

判断单元,用于判断所述保留区内目标数据的命中率是否大于与所述保留区同等大小的二级缓存的命中率;若是,则判定所述目标数据有数据价值;若否,则判定所述目标数据没有数据价值。

基于上述技术方案,所述保留区为从二级缓存中划分出的缓存区。

本发明实施例提供的一种基于SSD的数据获取方法及系统,包括:将二级缓存中丢弃的数据存入保留区;其中,所述保留区为从SSD划分出的缓存区;接收到数据获取请求时,根据所述数据获取请求从一级缓存中查找;若未查找到,则根据所述数据获取请求从二级缓存中查找;若未查找到,则根据所述数据获取请求从所述保留区中查找;若未查找到,则根据所述数据获取请求从内存中查找;可见,在本实施例中,通过将二级缓存丢弃的数据存入保留区,提高了SSD缓存命中率,有效地减小需要再用到的数据却被丢弃的概率,减少平均响应时间。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1