缓存的空间分配方法及装置制造方法

文档序号:6536295阅读:138来源:国知局
缓存的空间分配方法及装置制造方法
【专利摘要】本申请实施例提供了一种缓存的空间分配方法及装置,该方法应用于存储设备中,存储设备包括缓存,缓存的空间被划分为多个缓存区,其中,每个缓存区存储数据的最小单位不同,该方法包括:获取读数据请求,其中,读数据请求中携带有目标数据的数据量大小;根据目标数据的数据量大小确定目标数据对应的目标缓存区,目标数据的数据量大小小于或等于目标缓存区存储数据的最小单位;修改计数值,计数值用于指示目标缓存区的访问次数;根据修改后的计数值确定目标缓存区在缓存的空间中的容量占比;根据容量占比调整目标缓存区的容量。通过本申请解决了现有缓存空间分配的方法中存在的不能准确地做到与业务的需求相匹配,造成缓存空间利用率不高的问题。
【专利说明】缓存的空间分配方法及装置
【技术领域】
[0001]本发明涉及数据管理【技术领域】,尤其涉及一种缓存的空间分配方法及装置。
【背景技术】
[0002]为了提高数据存储和访问速度,现通常将数据缓存至高速缓存器中,例如:SSD(Solid State Disk,固态硬盘)。
[0003]具体的,对应多种业务的数据需要缓存时,需要先为每种业务分配缓存空间,再将不同种业务的缓存数据缓存到分配的缓存空间中。然而,在系统运行一段时间后,每种业务的缓存数据都会有所调整,此时会出现某种业务的缓存空间不足,而另一种业务的缓存空间过多的情况,那么就需要用户调整缓存空间分配,将对应缓存空间过多的业务的部分缓存空间删除,添加对应缓存空间不足的业务中去。
[0004]但是,这种依赖用户的配置调整缓存空间分配的方法,并不能准确地做到与业务的需求相匹配,造成缓存空间利用率不高。

【发明内容】

[0005]本发明实施例提供了一种缓存的空间分配方法,以解决现有缓存空间分配的方法中存在的不能准确地做到与业务的需求相匹配,造成缓存空间利用率不高的问题。
[0006]为实现上述目的,本申请提供如下技术方案:
[0007]第一方面,提供了一种缓存的空间分配方法,所述方法应用于存储设备中,所述存储设备包括所述缓存,所述缓存的空间被划分为多个缓存区,其中,每个缓存区存储数据的最小单位不同,所述方法包括:
[0008]获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小;
[0009]根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0010]修改计数值,所述计数值用于指示所述目标缓存区的访问次数;
[0011]根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比;
[0012]根据所述容量占比调整所述目标缓存区的容量。
[0013]在所述第一方面的第一种可能实现方式中,所述根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,包括:
[0014]比对所述目标数据的数据量大小和每个缓存区存储数据的最小单位;
[0015]确定存储数据的最小单位不小于所述目标数据的数据量大小的缓存区为目标缓存区。
[0016]在所述第一方面的第二种可能实现方式中,所述根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比,包括:
[0017]计算所述修改后的计数值在计数总值中的比例值,其中,所述计数总值为所述缓存的空间的所有缓存区的访问次数的总和;
[0018]根据所述比例值和所述缓存的空间的总容量,获得所述目标缓存区在所述缓存的空间中的容量占比。
[0019]在所述第一方面的第三种可能实现方式中,所述根据所述容量占比调整所述目标缓存区的容量包括:
[0020]比较所述目标缓存区的容量占比对应的容量和所述目标缓存区的原始容量;
[0021]若所述目标缓存区的容量占比对应的容量小于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,以预设缓存量为单位释放缓存空间;
[0022]若所述目标缓存区的容量占比对应的容量大于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,从释放得到的缓存空间中以所述预设缓存量为单位添加缓存空间。
[0023]结合所述第一方面,或所述第一方面的上述任意一种可能的实现方式,还提供了所述第一方面的第四种可能的实现方式,所述获取读数据请求之前,还包括:
[0024]确定所述读数据请求中携带的目标数据的数据量大小不大于预设阈值。
[0025]第二方面,提供了一种缓存的空间分配装置,应用于存储设备中,所述存储设备包括所述缓存,所述缓存的空间被划分为多个缓存区,其中,每个缓存区存储数据的最小单位不同,所述装置包括:
[0026]获取单元,用于获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小;
[0027]第一确定单元,用于根据所述获取单元得到的所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0028]修改单元,用于修改计数值,所述计数值用于指示所述第一确定单元确定的所述目标缓存区的访问次数;
[0029]第二确定单元,用于根据所述修改单元得到的所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比;
[0030]调整单元,用于根据所述第二确定单元得到的所述容量占比调整所述目标缓存区的容量。
[0031]在所述第二方面的第一种可能实现方式中,所述第一确定单元包括:
[0032]比对单元,比对所述目标数据的数据量大小和每个缓存区存储数据的最小单位;
[0033]第一确定子单元,用于确定存储数据的最小单位不小于所述目标数据的数据量大小的缓存区为目标缓存区。
[0034]在所述第二方面的第二种可能实现方式中,所述第二确定单元包括:
[0035]计算单元,用于计算所述修改后的计数值在计数总值中的比例值,其中,所述计数总值为所述缓存的空间的所有缓存区的访问次数的总和;
[0036]获得单元,用于根据所述计算单元计算得到的所述比例值和所述缓存的空间的总容量,获得所述目标缓存区在所述缓存的空间中的容量占比。
[0037]在所述第二方面的第三种可能实现方式中,所述调整单元包括:
[0038]比较单元,用于比较所述目标缓存区的容量占比对应的容量和所述目标缓存区的原始容量;
[0039]释放单元,用于所述比较单元确定所述目标缓存区的容量占比对应的容量小于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,以预设缓存量为单位释放缓存空间;
[0040]添加单元,用于所述比较单元确定所述目标缓存区的容量占比对应的容量大于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,从释放得到的缓存空间中以所述预设缓存量为单位添加缓存空间。
[0041]结合第二方面或所述第二方面的上述任意一种可能的实现方式,还提供了第二方面的第四种可能实现方式,还包括:
[0042]第三确定单元,用于确定所述读数据请求中携带的目标数据的数据量大小不大于预设阈值。
[0043]从上述的技术方案可以看出,本发明实施例公开的缓存的空间分配方法中,所述缓存的空间划分为多个缓存区,且每个缓存区存储数据的最小单位不同;具体的,所述缓存的空间分配方法中,根据所述容量占比调整所述目标缓存区的容量,并且,所述容量占比是采用所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位的方式,确定与所述目标数据对应的目标缓存区,再修改用于指示所述目标缓存区的访问次数的计数值,最后根据修改后的计数值确定的,这样,所述目标缓存区的容量的分配都跟目标数据的数据量大小相关,可以使所述缓存区的容量的分配与业务的需求相匹配,解决了现有缓存空间分配的方法中存在的不能准确地做到与业务的需求相匹配,造成缓存空间利用率不高的问题。
【专利附图】

【附图说明】
[0044]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0045]图1为本发明实施例公开的存储设备的结构示意图;
[0046]图2为本发明实施例公开的缓存的空间分配方法的流程图;
[0047]图3为本发明另一实施例公开的缓存的空间分配方法的流程图;
[0048]图4为本发明另一实施例公开的缓存的空间分配方法的流程图;
[0049]图5为本发明另一实施例公开的缓存的空间分配方法的流程图;
[0050]图6为本发明另一实施例公开的缓存的空间分配方法的流程图;
[0051]图7为本发明实施例公开的缓存的空间分配的结构示意图;
[0052]图8为本发明另一实施例公开的缓存的空间分配的结构示意图;
[0053]图9为本发明另一实施例公开的缓存的空间分配的结构示意图;
[0054]图10为本发明另一实施例公开的缓存的空间分配的结构示意图。
【具体实施方式】
[0055]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0056]本发明实施例提供了一种缓存的空间分配方法,以解决现有缓存空间分配的方法中存在的不能准确地做到与业务的需求相匹配,造成缓存空间利用率不高的问题。
[0057]其中,本发明实施例公开的缓存的空间分配方法应用于存储设备中,参见图1,本发明实施例提供的存储设备,包括:控制器101、高速缓存器102和磁盘103,其中,
[0058]控制器101控制数据先写入高速缓存器102,由高速缓存器102进行缓存,之后,控制器101再将高速缓存器102中的缓存数据存储到磁盘103。
[0059]需要说明的是,本发明实施公开的缓存空间由高速缓存器102提供,例如:SSD(Solid State Disk,固态硬盘)。
[0060]并且,本发明以下实施例公开的缓存的空间分配方法,均以SSD的缓存空间为例进行说明。
[0061]其中,将存储系统中所有用作缓存的SSD盘构成一个缓存池,此处所述的缓存池即为本实施例中所述的缓存的空间,将所述缓存池从逻辑上划分为多个缓存区,并且,每个缓存区存储数据的最小单位不同。
[0062]举例来说,所述缓存区存储数据的最小单位可以包括:4KB、8KB、16KB、32KB和64KB。
[0063]对应的,此时,所述缓存池即被划分为5个缓存区,第一缓存区存储数据的最小单位为4KB,第二缓存区存储数据的最小单位为8KB,第三缓存区存储数据的最小单位为16KB,第四缓存区存储数据的最小单位为32KB,第四缓存区存储数据的最小单位为64KB。
[0064]本发明实施例公开的缓存的空间分配方法,参见图2,包括步骤:
[0065]S101、获取读数据请求;
[0066]其中,所述读数据请求中携带有目标数据的数据量大小;
[0067]需要说明的是,本实施例中所述的目标数据是需要缓存的业务的数据。
[0068]并且,缓存目标数据前,需要先确定目标数据的缓存位置,即缓存所述目标数据的缓存区。
[0069]具体的,根据所述目标数据的数据量大小确定缓存区,并且,一般情况下,对应不同业务的目标数据,其数据量大小可能并不相同,但是同一业务的目标数据,数据量大小基本上是相同的。这样,同一业务的目标数据缓存到一个缓存区。
[0070]S102、根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区;
[0071]其中,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0072]具体的,采用目标数据的数据量大小不大于所述缓存区存储数据的最小单位的方式,确定与所述读数据请求中携带的目标数据相对应的缓存区。
[0073]S103、修改计数值,所述计数值用于指示所述目标缓存区的访问次数;
[0074]具体的,对应每一个缓存区,均设置有计数器,其中,本步骤所述的计数值指代的是计数器的计数值。
[0075]识别所述目标数据的数据量大小,确定缓存区存储数据的最小单位大于所述目标数据的数据量大小的缓存区,此时,对应所述确定的缓存区的计数器计数加I。
[0076]S104、根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量[tTt 匕 5
[0077]S105、根据所述容量占比调整所述目标缓存区的容量;
[0078]本发明实施例公开的缓存的空间分配方法中,所述缓存的空间划分为多个缓存区,且每个缓存区存储数据的最小单位不同;具体的,所述缓存的空间分配方法中,根据所述容量占比调整所述目标缓存区的容量,并且,所述容量占比是采用所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位的方式,确定与所述目标数据对应的目标缓存区,再修改用于指示所述目标缓存区的访问次数的计数值,最后根据修改后的计数值确定的,这样,所述目标缓存区的容量的分配都跟目标数据的数据量大小相关,可以使所述缓存区的容量的分配与业务的需求相匹配,解决了现有缓存空间分配的方法中存在的不能准确地做到与业务的需求相匹配,造成缓存空间利用率不高的问题。
[0079]此处需要说明的是,执行一次本实施例公开的缓存的空间分配方法,是将所述缓存的空间划分后得到的一个缓存区作为目标缓存区,对该目标缓存区调整容量;并且,所述目标缓存区是根据所述目标数据确定的。
[0080]此处还需要说明的是,可以周期性执行本实施例公开的缓存的空间分配方法,例如,间隔10分钟执行一次本实施例公开的缓存的空间分配方法,这样,可以保证为每个缓存区分配的缓存的空间都跟随目标数据的需求,做到合理分配缓存的空间。
[0081]本发明另一实施例还公开了一种缓存的空间分配方法,参见图3,包括步骤:
[0082]S201、获取读数据请求;
[0083]其中,所述读数据请求中携带有目标数据的数据量大小;
[0084]具体的,监听一段时间是否有读数据请求,若有读数据请求,获取所述读数据请求。
[0085]以下结合一个例子说明本实施例公开的缓存的空间分配方法。
[0086]例如:获取得到的读数据请求为多个,所述多个读数据请求中携带的目标数据的数据量大小分别为 IKB、4KB、7KB、15KB、26KB、50KB、64KB。
[0087]S202、比对所述目标数据的数据量大小和每个缓存区存储数据的最小单位;
[0088]具体的,在本实施例中的例子中,所述缓存的空间被划分为5个缓存区,分别是:存储数据的最小单位为4KB、8KB、16KB、32KB和64KB的缓存区。
[0089]其中,所述存储数据的最小单位为4KB的缓存区缓存数据量大小大于等于512B,小于等于4KB的目标数据;所述存储数据的最小单位为8KB的缓存区包括数据量大小大于4KB,小于等于8KB的目标数据;所述存储数据的最小单位为16KB的缓存区包括数据量大小大于8KB,小于等于16KB的目标数据;所述存储数据的最小单位为32KB的缓存区包括数据量大小大于16KB,小于等于32KB的目标数据;所述存储数据的最小单位为64KB的缓存区包括数据量大小大于32KB,小于等于64KB的目标数据。
[0090]将获取得到的7个读数据请求分别按照目标数据的数据量大小与五种缓存区进行匹配,对7个读数据请求进行归类。
[0091]S203、确定存储数据的最小单位不小于所述目标数据的数据量大小的缓存区为目标缓存区。[0092]具体的,在本实施例中的例子中,根据归类结果,得到的所述读数据请求和缓存区的关系表如下:
[0093][512B,4KB]:1KB、4KB
[0094](4KB, 8KB]:7KB
[0095](8KB, 16KB]:15KB
[0096](16KB, 32KB]:26KB
[0097](32KB, 64KB]:50KB,64KB
[0098]需要说明的是,上述的五种区间并不指代数学上的区间的两个临界点之间的所有数字的集合,而是指在区间的两个临界点之间,在现有技术中存在的存储数据单位的集合。
[0099]当然,上述的区间是否包括区间的两个临界点,可以参见在数学上对小括号和中括号的理解。
[0100]S204、修改计数值;
[0101]其中,所述计数值用于指示所述目标缓存区的访问次数;
[0102]具体的,在本实施例中的例子中,根据上述的关系表,对与所述读数据请求相对应的5种缓存区的访问次数计数,对应计数结果,修改计数值。
[0103]所述修改后的计数值分别用于指示:
[0104]存储数据的最小单位为4KB的缓存区被访问2次,存储数据的最小单位为8KB的缓存区被访问I次,存储数据的最小单位为16KB的缓存区被访问I次,存储数据的最小单位为32KB的缓存区被访问I次,存储数据的最小单位为64KB的缓存区被访问2次。
[0105]S205、根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量[tTt 匕 5
[0106]其中,在本实施例中的例子中,五种缓存区在所述缓存的空间中的容量占比分别是,存储数据的最小单位为4KB的缓存区为2/7 ;存储数据的最小单位为8KB的缓存区为1/7 ;存储数据的最小单位为16KB的缓存区为1/7 ;存储数据的最小单位为32KB的缓存区为1/7 ;存储数据的最小单位为64KB为2/7。
[0107]S206、根据所述容量占比调整所述目标缓存区的容量;
[0108]具体的,在本实施例中的例子中,为五种缓存区分配与得到的容量占比对应的容量。
[0109]此处需要说明的是,本实施例公开的缓存的空间分配方法中,步骤S201中,获取的读数据请求可以是多个,诸如本实施例公开的例子中,监听一段时间的读数据请求。
[0110]但是,监听到多个读数据请求时,逐个获取读数据请求,并对一次获取的读数据请求分别执行步骤S202-S204。当确定对应最后一次获取的读数据请求,执行完步骤S204,修改计数值后,再对应多个修改后的计数值,分别执行步骤S205-S206。当然,同样也是对每一次修改后的计数值,分别执行步骤S205-S206。
[0111]本发明另一实施例还公开了一种缓存的空间分配方法,参见图4,包括步骤:
[0112]S301、获取读数据请求;
[0113]其中,所述读数据请求中携带有目标数据的数据量大小;
[0114]S302、根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区;
[0115]其中,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0116]S303、修改计数值;
[0117]其中,所述计数值用于指示所述目标缓存区的访问次数;
[0118]S304、计算所述修改后的计数值在计数总值中的比例值;
[0119]其中,所述计数总值为所述缓存的空间的所有缓存区的访问次数的总和;
[0120]具体的,续接上述实施例的例子,所述计数总值为:2+1+1+1+2=7 ;
[0121]五种缓存区的计数值在计数总值中的比例值如下:
[0122]存储数据的最小单位为4KB的缓存区的计数值的比例值为:
[0123]2/ (2+1+1+1+2) =2/7 ;
[0124]存储数据的最小单位为8KB的缓存区的计数值的比例值为:
[0125]I/ (2+1+1+1+2) =1/7 ;
[0126]存储数据的最小单位为16KB的缓存区的计数值的比例值为:
[0127]I/ (2+1+1+1+2) =1/7 ;
[0128]存储数据的最小单位为32KB的缓存区的计数值的比例值为:
[0129]I/ (2+1+1+1+2) =1/7 ;
[0130]存储数据的最小单位为64KB的缓存区的计数值的比例值为:
[0131]2/ (2+1+1+1+2) =2/7?
[0132]S305、根据所述比例值和所述缓存的空间的总容量,获得所述目标缓存区在所述缓存的空间中的容量占比;
[0133]具体的,将所述比例值和缓存的空间的总容量做乘,得到所述目标缓存区在所述缓存的空间中的容量占比。
[0134]其中,所述容量占比指代所述目标缓存区的实际分得所述缓存的空间的总容量的
容量值。
[0135]同样,续集上述实施例的例子,五种缓存区的容量占比分别为:
[0136]存储数据的最小单位为4KB的缓存区的容量:存储数据的最小单位为8KB的容量:存储数据的最小单位为16KB的缓存区的容量:存储数据的最小单位为32KB的缓存区的容量:存储数据的最小单位为64KB的缓存区的容量=缓存的空间的总容量X2/7:缓存的空间的总容量X 1/7:缓存的空间的总容量X 1/7:缓存的空间的总容量X 1/7:缓存的空间的总容量X 2/7。
[0137]S306、根据所述容量占比调整所述目标缓存区的容量。
[0138]本发明另一实施例还公开了一种缓存的空间分配方法,参见图5,包括:
[0139]S401、获取读数据请求;
[0140]其中,所述读数据请求中携带有目标数据的数据量大小;
[0141 ]S402、根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区;
[0142]其中,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0143]S403、修改计数值;
[0144]其中,所述计数值用于指示所述目标缓存区的访问次数;
[0145]S404、根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量[tTt 匕 5
[0146]S405、比较所述目标缓存区的容量占比对应的容量和所述目标缓存区的原始容量;
[0147]具体的,步骤S404中,确定所述目标缓存区在所述缓存的空间中的容量占比后,将所述目标缓存区的容量占比对应的容量和所述目标缓存区的原始容量做差,得到两者的差值。
[0148]并且,所述目标缓存区的原始容量一般是上一次执行本发明实施例公开的缓存的空间分配方法之后,为所述目标述缓存区分配之后的容量。
[0149]若本次执行的本发明实施例公开的缓存的空间分配方法为初始执行该方法,则所述目标缓存区的原始容量为缓存区的初始容量。
[0150]一般情况下,将所述缓存的空间平均分配,分别分配给每个缓存区,作为每个所述缓存区的初始容量。
[0151]S406、若所述目标缓存区的容量占比对应的容量小于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,以预设缓存量为单位释放缓存空间;
[0152]具体的,若所述两者的差值为负数,则确定所述目标缓存区为需要减小容量的缓存区,以预设缓存量为单位释放所述目标缓存区的缓存空间,直至满足步骤S404中计算得到的容量占比的要求。
[0153]优选地,所述预设缓存量可以为1MB、2MB、4MB、8MB和16MB中的任意一种,其一般远小于一个SSD盘的容量。
[0154]S407、若所述目标缓存区的容量占比对应的容量大于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,从释放得到的缓存空间中以所述预设缓存量为单位添加缓存空间。
[0155]同样,若所述两者的差值为正数,则确定所述目标缓存区为需要增加容量的缓存区,对需要增加容量的缓存区,需要从步骤S407中释放的得到的缓存空间中以预设缓存量为单位添加缓存空间,直至满足步骤S404中计算得到的容量占比的要求。
[0156]本实施例中,与预设缓存量为单位来调整每个缓存区的缓存资源,相对于现有技术以SSD盘为单位进行缓存资源的调整,由于预设缓存量远小于SSD盘的容量,这样,可以保证每个缓存区的调整更加准确。
[0157]本发明另一实施例还公开了一种缓存的空间分配方法,参见图6,包括步骤:
[0158]S501、获取读数据请求;
[0159]其中,所述读数据请求中携带有目标数据的数据量大小;
[0160]S502、判断所述读数据请求中携带的目标数据的数据量大小不大于预设阈值;
[0161]若判断所述目标数据的数据量大小不大于预设阈值,则执行S503、根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0162]具体的,本实施例中,执行步骤S503之前,需要先确定步骤S501中获取到的读数据请求中携带的目标数据的数据量大小小于等于预设阈值。
[0163]其中,所述预设阈值可以根据实际需要设定,例如:64KB。
[0164]并且,一般情况下,缓存到所述缓存的空间的数据为热点数据,有数据量大小限定,对数据量大小小于预设阈值的读数据请求,执行本实施例公开的缓存的空间分配方法,能够保证缓存的数据均是热点数据。
[0165]优选地,若判断所述目标数据的数据量大小大于预设阈值,则退出该流程。
[0166]S504、修改计数值;
[0167]其中,所述计数值用于指示所述目标缓存区的访问次数;
[0168]S505、根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量[tTt 匕 5
[0169]S506、根据所述容量占比调整所述目标缓存区的容量;
[0170]本实施例中,步骤SS503、S505和S506具体实现过程可参见上述三个实施例的内容,此处不再赘述。
[0171]本发明另一实施例还公开了一种缓存的空间分配装置,应用于存储设备中,所述存储设备包括所述缓存,所述缓存的空间被划分为多个缓存区,其中,每个缓存区存储数据的最小单位不同,参见图7,所述装置包括:
[0172]获取单元101,用于获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小;
[0173]第一确定单元102,用于根据获取单元101得到的所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0174]修改单元103,用于修改计数值,所述计数值用于指示第一确定单元102确定的所述目标缓存区的访问次数;
[0175]第二确定单元104,用于根据修改单元103得到的所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比;
[0176]调整单元105,用于根据第二确定单元104得到的所述容量占比调整所述目标缓存区的容量。
[0177]本发明实施例公开的缓存的空间分配装置中,所述缓存的空间划分为多个缓存区,且每个缓存区存储数据的最小单位不同;具体的,所述缓存的空间分配装置中,调整单元105根据所述容量占比调整所述目标缓存区的容量,并且,所述容量占比是第一确定单元102采用所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位的方式,确定与所述目标数据对应的目标缓存区,修改单元103再修改用于指示所述目标缓存区的访问次数的计数值,最后第二确定单元104根据修改后的计数值确定的,这样,所述目标缓存区的容量的分配都跟目标数据的数据量大小相关,可以使所述缓存区的容量的分配与业务的需求相匹配,解决了现有缓存空间分配的方法中存在的不能准确地做到与业务的需求相匹配,造成缓存空间利用率不高的问题。
[0178]具体的,本实施例公开的缓存的空间分配装置中的每个单元的具体工作过程见对应图2的方法实施例的内容,此处不再赘述。
[0179]本发明另一实施例还公开了一种缓存的空间分配装置,参见图8,包括:
[0180]获取单元201,用于获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小;
[0181]比对单元202,比对获取单元201获取的读数据请求中携带的目标数据的数据量大小和每个缓存区存储数据的最小单位;
[0182]第一确定子单元203,用于确定存储数据的最小单位不小于所述目标数据的数据量大小的缓存区为目标缓存区;
[0183]修改单元204,用于修改计数值,所述计数值用于指示第一确定子单元203确定的所述目标缓存区的访问次数;
[0184]第二确定单元205,用于根据修改单元204得到的所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比;
[0185]调整单元206,用于根据第二确定单元205得到的所述容量占比调整所述目标缓存区的容量。
[0186]具体的,本实施例公开的缓存的空间分配装置中的每个单元的具体工作过程见对应图3的方法实施例的内容,此处不再赘述。
[0187]本发明另一实施例还公开了一种缓存的空间分配装置,参见图9,包括:
[0188]获取单元301,用于获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小;
[0189]第一确定单元302,用于根据获取单元301得到的所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0190]修改单元303,用于修改计数值,所述计数值用于指示第一确定单元302确定的所述目标缓存区的访问次数;
[0191]计算单元304,用于计算所述修改后的计数值在计数总值中的比例值,其中,所述计数总值为所述缓存的空间的所有缓存区的访问次数的总和;
[0192]获得单元305,用于根据计算单元304计算得到的所述比例值和所述缓存的空间的总容量,获得所述目标缓存区在所述缓存的空间中的容量占比;
[0193]调整单元306,用于根据获得单元305得到的所述容量占比调整所述目标缓存区
的容量。
[0194]具体的,本实施例公开的缓存资源分配装置中的每个单元的具体工作过程见对应图4的方法实施例的内容,此处不再赘述。
[0195]本发明另一实施例还公开了一种缓存的空间分配装置,参见图10,包括:
[0196]获取单元401,用于获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小;
[0197]第一确定单元402,用于根据获取单元401得到的所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;
[0198]修改单元403,用于修改计数值,所述计数值用于指示第一确定单元402确定的所述目标缓存区的访问次数;
[0199]第二确定单元404,用于根据修改单元403得到的所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比;
[0200]比较单元405,用于比较所述目标缓存区的容量占比对应的容量和所述目标缓存区的原始容量;[0201]释放单元406,用于比较单元405确定所述目标缓存区的容量占比对应的容量小于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,以预设缓存量为单位释放缓存空间;
[0202]添加单元407,用于比较单元405确定所述目标缓存区的容量占比对应的容量大于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,从释放得到的缓存空间中以所述预设缓存量为单位添加缓存空间。
[0203]优选地,本实施例公开的预设缓存量可以为1MB、2MB、4MB、8MB和16MB中的任意一种,其一般远小于一个SSD盘的容量。
[0204]具体的,本实施例公开的缓存资源分配装置中的每个单元的具体工作过程见对应图5的方法实施例的内容,此处不再赘述。
[0205]本发明上述几个实施例公开的缓存的空间分配装置中,优选地,均还可以包括:
[0206]第三确定单元,用于确定所述读数据请求中携带的目标数据的数据量大小不大于预设阈值。
[0207]本发明另一实施例还公开了一种存储设备,结构参见图1,包括:包括:控制器、高速缓存器和磁盘,其中,
[0208]所述高速缓存器的缓存空间在逻辑上被划分为多个缓存区,其中,每个缓存区存储数据的最小单位不同;
[0209]所述存储设备的控制器执行缓存的空间分配方法时,具体用于:获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小;根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位;修改计数值,所述计数值用于指示所述目标缓存区的访问次数;根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比;根据所述容量占比调整所述目标缓存区的容量。
[0210]优选地,所述控制器根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区的方式具体包括:
[0211]比对所述目标数据的数据量大小和每个缓存区存储数据的最小单位;
[0212]确定存储数据的最小单位不小于所述目标数据的数据量大小的缓存区为目标缓存区。
[0213]优选地,所述控制器根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比的方式具体包括:
[0214]计算所述修改后的计数值在计数总值中的比例值,其中,所述计数总值为所述缓存的空间的所有缓存区的访问次数的总和;
[0215]根据所述比例值和所述缓存的空间的总容量,获得所述目标缓存区在所述缓存的空间中的容量占比。
[0216]优选地,所述控制器根据所述容量占比调整所述目标缓存区的容量的方式具体包括:
[0217]比较所述目标缓存区的容量占比对应的容量和所述目标缓存区的原始容量;
[0218]若所述目标缓存区的容量占比对应的容量小于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,以预设缓存量为单位释放缓存空间;[0219]若所述目标缓存区的容量占比对应的容量大于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,从释放得到的缓存空间中以所述预设缓存量为单位添加缓存空间。
[0220]优选地,所述控制器获取读数据请求之前,还用于:
[0221]判断所述读数据请求中携带的目标数据的数据量大小不大于预设阈值,在判断所述目标数据的数据量大小不大于预设阈值时,再根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区。
[0222]最后需要说明的是,上述几个实施例公开的存储设备中的控制器的具体工作过程可参见对应的方法实施例,此处不再赘述。
[0223]本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0224]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0225]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种缓存的空间分配方法,其特征在于,所述方法应用于存储设备中,所述存储设备包括所述缓存,所述缓存的空间被划分为多个缓存区,其中,每个缓存区存储数据的最小单位不同,所述方法包括: 获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小; 根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位; 修改计数值,所述计数值用于指示所述目标缓存区的访问次数; 根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比; 根据所述容量占比调整所述目标缓存区的容量。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,包括: 比对所述目标数据的数据量大小和每个缓存区存储数据的最小单位; 确定存储数据的最小单位不小于所述目标数据的数据量大小的缓存区为目标缓存区。
3.根据权利要求1所述的方法,其特征在于,所述根据所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比,包括: 计算所述修改后的计数值在计数总值中的比 例值,其中,所述计数总值为所述缓存的空间的所有缓存区的访问次数的总和; 根据所述比例值和所述缓存的空间的总容量,获得所述目标缓存区在所述缓存的空间中的容量占比。
4.根据权利要求1所述的方法,其特征在于,所述根据所述容量占比调整所述目标缓存区的容量包括: 比较所述目标缓存区的容量占比对应的容量和所述目标缓存区的原始容量; 若所述目标缓存区的容量占比对应的容量小于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,以预设缓存量为单位释放缓存空间; 若所述目标缓存区的容量占比对应的容量大于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,从释放得到的缓存空间中以所述预设缓存量为单位添加缓存空间。
5.根据权利要求1-4中任意一项所述的方法,其特征在于,所述获取读数据请求之前,还包括: 确定所述读数据请求中携带的目标数据的数据量大小不大于预设阈值。
6.一种缓存的空间分配装置,其特征在于,应用于存储设备中,所述存储设备包括所述缓存,所述缓存的空间被划分为多个缓存区,其中,每个缓存区存储数据的最小单位不同,所述装置包括: 获取单元,用于获取读数据请求,其中,所述读数据请求中携带有目标数据的数据量大小; 第一确定单元,用于根据所述获取单元得到的所述目标数据的数据量大小确定所述目标数据对应的目标缓存区,所述目标数据的数据量大小小于或等于所述目标缓存区存储数据的最小单位; 修改单元,用于修改计数值,所述计数值用于指示所述第一确定单元确定的所述目标缓存区的访问次数; 第二确定单元,用于根据所述修改单元得到的所述修改后的计数值确定所述目标缓存区在所述缓存的空间中的容量占比; 调整单元,用于根据所述第二确定单元得到的所述容量占比调整所述目标缓存区的容量。
7.根据权利要求6所述的装置,其特征在于,所述第一确定单元包括: 比对单元,比对所述目标数据的数据量大小和每个缓存区存储数据的最小单位; 第一确定子单元,用于确定存储数据的最小单位不小于所述目标数据的数据量大小的缓存区为目标缓存区。
8.根据权利要求6所述的装置,其特征在于,所述第二确定单元包括: 计算单元,用于计算所述修改后的计数值在计数总值中的比例值,其中,所述计数总值为所述缓存的空间的所有缓存区的访问次数的总和; 获得单元,用于根据所述计算单元计算得到的所述比例值和所述缓存的空间的总容量,获得所述目标缓存区在所述缓存的空间中的容量占比。
9.根据权利要求6所述的装置,其特征在于,所述调整单元包括: 比较单元,用于比较所述目标缓存区的容量占比对应的容量和所述目标缓存区的原始容量; 释放单元,用于所述比较单元确定所述目标缓存区的容量占比对应的容量小于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,以预设缓存量为单位释放缓存空间; 添加单元,用于所述比较单元确定所述目标缓存区的容量占比对应的容量大于所述目标缓存区的原始容量,依据所述目标缓存区的容量占比对应的容量,从释放得到的缓存空间中以所述预设缓存量为单位添加缓存空间。
10.根据权利要求6-9中任意一项所述的装置,其特征在于,还包括: 第三确定单元,用于确定所述读数据请求中携带的目标数据的数据量大小不大于预设阈值。
【文档编号】G06F12/08GK103778071SQ201410025779
【公开日】2014年5月7日 申请日期:2014年1月20日 优先权日:2014年1月20日
【发明者】周后兵 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1