一种共享缓存分配方法及装置与流程

文档序号:12623695阅读:252来源:国知局
一种共享缓存分配方法及装置与流程

本发明涉及服务质量(QoS,Quality of service)领域,具体涉及一种共享缓存分配方法及装置。



背景技术:

在现有的大流量多用户数据网络中,必须要用到网络拥塞控制技术。随机早期丢弃技术是其中一种网络拥塞控制方法,其目的是在数据溢出缓存空间之前进行早期丢弃,从而避免缓存溢出导致大量连续丢包。

随机早期丢弃的原理是通过计算队列占用缓存情况来提前预判缓存空间的拥塞。目前共享缓存管理采用乘法算法进行共享空间动态估算(队列激活数乘以当前队列的缓存占用数)获得估计值,再用估计值和丢弃阈值(包括低阈值和高阈值)进行比较判断;如果估计值小于低阈值,不进行任何丢弃操作;如果估计值在低阈值和高阈值之间,对新加入的数据包按预设丢弃概率表进行随机丢弃操作。当估计值高于高阈值时,则对新加入的数据包完全丢弃。现有技术是公平共享技术,进入共享的用户公平享有缓存,那么必然造成了某些用户用完缓存,而另一些用户还有剩余缓存的浪费现象。而且现有技术没有考虑对优先级用户的区别对待,对高优先级用户的业务没有做到良好的保证。

现有技术中提出一种基于优先级的共享缓存管理办法,即共享缓存按照优先级划分成不同的缓存区,每个优先级缓存区可存储该优先级下所有队列。高优先级的队列可占用其所属的优先级及其以下的所有优先级缓存区。这种方法实现了基于优先级的服务质量,但缺陷是缓存利用率太低,若高优先级队列网络负载小,低优先级负载大时就极大的浪费了缓存。



技术实现要素:

为解决现有存在的技术问题,本发明实施例提供一种共享缓存分配方法及装置,旨在解决现有技术中缓存利用率太低的问题。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种共享缓存分配方法,所述方法包括:

预先配置共享缓存空间为静态缓存空间和动态缓存空间;

当有队列加入,且所述静态缓存空间的存储空间满足第一预设条件时,控制所述队列发起动态缓存空间申请;

判定所述队列的动态缓存空间申请满足第二预设条件时,依据所述队列预先配置的调整系数为所述队列分配所述动态缓存空间中的缓存空间。

上述方案中,所述静态缓存空间的存储空间满足第一预设条件,包括:

比较所述静态缓存空间的存储空间的估计值是否大于等于第一阈值,获得比较结果;

当所述比较结果为所述静态缓存空间的存储空间的估计值大于等于第一阈值时,确定所述静态缓存空间的存储空间满足第一预设条件;

其中,所述静态缓存空间的存储空间的估计值等于所述静态缓存空间中的激活队列数与队列缓存深度的乘积。

上述方案中,所述判定所述队列的动态缓存空间申请满足第二预设条件,包括:

判断所述队列的优先级是否满足预设优先级门限,并且所述动态缓存空间的剩余存储空间是否大于第二阈值,获得判断结果;其中,所述第二阈值为所述动态缓存空间的最小分配步长;

当所述判断结果为所述队列的优先级满足预设优先级门限,并且所述动态缓存空间的剩余存储空间大于第二阈值时,确定所述队列的动态缓存空间申请满足第二预设条件。

上述方案中,所述依据所述队列预先配置的调整系数为所述队列分配所述 动态缓存空间中的缓存空间,包括:

依据所述调整系数α以及所述动态缓存空间的存储空间的最小分配步长Δh获得为所述队列分配所述动态缓存空间中的缓存空间ΔL;所述调整系数α为非负整数;Δh为正整数;

其中,ΔL=α×Δh。

上述方案中,所述为所述队列分配所述动态缓存空间中的缓存空间之后,所述方法还包括:

为所述队列分配的所述动态缓存空间中的缓存空间被所述队列占满后,重新为新的入队分配静态缓存空间中的缓存空间。

本发明实施例还提供了一种共享缓存分配装置,所述装置包括:配置单元、第一处理单元和第二处理单元;其中,

所述配置单元,用于预先配置共享缓存空间为静态缓存空间和动态缓存空间;

所述第一处理单元,用于当有队列加入,且所述静态缓存空间的存储空间满足第一预设条件时,控制所述队列发起动态缓存空间申请;

所述第二处理单元,用于判定所述第一处理单元发起的所述队列的动态缓存空间申请满足第二预设条件时,依据所述队列预先配置的调整系数为所述队列分配所述动态缓存空间中的缓存空间。

上述方案中,所述第一处理单元,用于比较所述静态缓存空间的存储空间的估计值是否大于等于第一阈值,获得比较结果;当所述比较结果为所述静态缓存空间的存储空间的估计值大于等于第一阈值时,确定所述静态缓存空间的存储空间满足第一预设条件;其中,所述静态缓存空间的存储空间的估计值等于所述静态缓存空间中的激活队列数与队列缓存深度的乘积。

上述方案中,所述第二处理单元,用于判断所述队列的优先级是否满足预设优先级门限,并且所述动态缓存空间的剩余存储空间是否大于第二阈值,获得判断结果;其中,所述第二阈值为所述动态缓存空间的最小分配步长;当所述判断结果为所述队列的优先级满足预设优先级门限,并且所述动态缓存空间 的剩余存储空间大于第二阈值时,确定所述队列的动态缓存空间申请满足第二预设条件。

上述方案中,所述第二处理单元,用于依据所述调整系数α以及所述动态缓存空间的存储空间的最小分配步长Δh获得为所述队列分配所述动态缓存空间中的缓存空间ΔL;所述调整系数α为非负整数;Δh为正整数;其中,ΔL=α×Δh。

上述方案中,所述第二处理单元,还用于为所述队列分配的所述动态缓存空间中的缓存空间被所述队列占满后,触发所述第一处理单元重新为新的入队分配静态缓存空间中的缓存空间。

本发明实施例提供的一种共享缓存分配方法及装置,通过预先配置共享缓存空间为静态缓存空间和动态缓存空间;当有队列加入时,且所述静态缓存空间的存储空间满足第一预设条件时,控制所述队列发起动态缓存空间申请;确定所述队列的动态缓存空间申请满足第二预设条件时,依据所述队列预先配置的调整系数为所述队列分配所述动态缓存空间中的缓存空间。如此,采用本发明实施例的技术方案,通过预先配置的动态缓存空间作为区分优先级的动态缓存调整区,所述动态缓存空间可在网络拥塞场景时进行基于优先级的动态缓存分配和释放;一方面可以根据网络实时情况为不同缓存需求的业务实现动态缓存空间的申请和释放,增加了对共享缓存空间的利用率,增强了系统对网络动态变化的适应性;另一方面对动态缓存空间可按照优先级进行动态分配,使得共享缓存空间能够更好地为高优先级业务服务,大大提升了网络的服务质量;最后,本发明实施例中所述动态缓存空间只涉及全部共享缓存空间的部分空间,减小了设计的复杂性,同时减小了现有技术中将全部缓存按优先级设置导致缓存浪费。

附图说明

图1为本发明实施例一的共享缓存分配方法的流程示意图;

图2为本发明实施例的共享缓存空间的应用示意图;

图3为本发明实施例的动态缓存空间的应用场景示意图;

图4为本发明实施例二的共享缓存分配方法的流程示意图;

图5为本发明实施例三的共享缓存分配装置的一种组成结构示意图;

图6为本发明实施例三的共享缓存分配装置的另一种组成结构示意图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步详细的说明。

实施例一

本发明实施例提供了一种共享缓存分配方法。图1为本发明实施例一的共享缓存分配方法的流程示意图;如图1所示,所述方法包括:

步骤101:预先配置共享缓存空间为静态缓存空间和动态缓存空间。

本实施例提供的共享缓存分配方法应用于各种网络通信设备中。则本步骤中,所述预先配置共享缓存空间为静态缓存空间和动态缓存空间,为:网络通信设备预先配置共享缓存空间为静态缓存空间和动态缓存空间。

具体的,图2为本发明实施例的共享缓存空间的应用示意图;如图2所示,所述网络通信设备预先将共享缓存空间划分为静态缓存空间和动态缓存空间。其中,优先分配静态缓存空间中的存储空间,也即当有队列加入时,优先分配所述静态缓存空间中的存储空间给队列。

具体的,所述静态缓存空间中的存储空间的分配方式依据现有技术中共享缓存的分配方式,这里不再赘述。

步骤102:当有队列加入,且所述静态缓存空间的存储空间满足第一预设条件时,控制所述队列发起动态缓存空间申请。

这里,所述静态缓存空间的存储空间满足第一预设条件,包括:

比较所述静态缓存空间的存储空间的估计值是否大于等于第一阈值,获得比较结果;当所述比较结果为所述静态缓存空间的存储空间的估计值大于等于第一阈值时,确定所述静态缓存空间的存储空间满足第一预设条件;

其中,所述静态缓存空间的存储空间的估计值等于所述静态缓存空间中的 激活队列数与队列缓存深度的乘积。

本实施例中,所述网络通信设备预先配置以下参数:

1、静态缓存空间的容量和动态缓存空间的容量(所述静态缓存空间的容量和所述动态缓存空间的容量的总和为共享缓存空间的总容量);

2、静态缓存空间的丢弃阈值(包括高阈值和低阈值)和丢弃概率表;

3、动态缓存空间的优先级门限;

4、动态缓存空间的最小分配步长(Δh)和调整系数(α)。

本实施例中,所述静态缓存空间遵循部分的随机早期丢弃原则,即:采用乘法算法进行共享空间动态估算(队列激活数乘以当前队列的缓存占用数)获得估计值,再用估计值和丢弃阈值(包括低阈值和高阈值)进行比较判断;如果估计值小于低阈值,不进行任何丢弃操作;如果估计值在低阈值和高阈值之间,对新加入的数据包按预设丢弃概率表进行随机丢弃操作。当估计值高于高阈值时,则对新加入的数据包完全丢弃。本步骤中,所述第一阈值即为所述高阈值。可以理解为本实施例对所述随机早期丢弃原则进行改进,即当所述静态缓存空间的存储空间的估计值大于等于高阈值(即第一阈值)时,确定所述静态缓存空间的存储空间满足第一预设条件,从而触发动态缓存空间申请。

具体的,当有新队列加入时,所述网络通信设备或所述静态缓存空间中预先存储有配置表,从所述配置表中能够获得丢弃阈值(包括高阈值和低阈值)以及丢弃概率表;依据所述静态缓存空间当前的存储情况获得队列上一次更新得到的缓存深度,计算当前队列的缓存深度等于所述上一次更新得到的缓存深度与当前新队列需要的缓存申请数。进一步地,统计所述静态缓存空间中的激活队列数;基于所述激活队列数以及所述共享缓存深度计算所述静态缓存空间的存储空间的估计值;所述估计值等于激活队列数与队列缓存深度的乘积。进一步地,用所述估计值与所述丢弃阈值(包括高阈值和低阈值)进行比较,当比较结果为所述估计值小于所述低阈值时,不进行任何丢弃操作;当比较结果为所述估计值在所述低阈值和所述高阈值之间时,对新加入的数据包按预设丢弃概率表进行随机丢弃操作;当所述估计值大于等于所述高阈值时,触发所述 队列发起动态缓存空间申请。

步骤103:判定所述队列的动态缓存空间申请满足第二预设条件时,依据所述队列预先配置的调整系数为所述队列分配所述动态缓存空间中的缓存空间。

这里,所述确定所述队列的动态缓存空间申请满足第二预设条件,包括:

判断所述队列的优先级是否满足预设优先级门限,并且所述动态缓存空间的剩余存储空间是否大于第二阈值,获得判断结果;其中,所述第二阈值为所述动态缓存空间的最小分配步长;

当所述判断结果为所述队列的优先级满足预设优先级门限,并且所述动态缓存空间的剩余存储空间大于第二阈值时,确定所述队列的动态缓存空间申请满足第二预设条件。

具体的,当控制所述队列发起动态缓存空间申请时,首先判断当前所述动态缓存空间的存储空间是否还能够存储新加入的队列以及所述队列是否满足动态缓存空间的申请条件;其中,为了体现不同的优先级可以获得不同的服务,优选地,作为一种实施方式,所述动态缓存空间可预先配置优先级门限,即当申请在所述动态缓存空间中的队列的优先级未达到其对应的优先级门限时,才可为所述队列分配所述动态缓存空间的存储空间。例如,队列1的优先级门限时16,表征所述队列1能够申请16个动态缓存空间;当所述队列1当前的优先级达到16,即所述队列1当前已达到优先级门限时,表明所述队列1已无法申请动态缓存空间的资源;当所述队列1当前的优先级为10时,即所述队列1当前未达到优先级门限,则可以继续申请动态缓存空间的资源。另一方面,当所述队列的优先级未达到其对应的优先级门限时,进一步判断所述动态缓存空间中的剩余存储空间是否大于第二阈值,所述第二阈值可以为所述动态缓存空间的最小分配步长(Δh),当然,所述第二阈值也可以是预先配置的其他数值,本实施例中不作具体限定。

本实施例中,所述依据所述队列预先配置的调整系数为所述队列分配所述动态缓存空间中的缓存空间,包括:

依据所述调整系数α以及所述动态缓存空间的存储空间的最小分配步长(Δh)获得为所述队列分配所述动态缓存空间中的缓存空间(ΔL);所述调整系数(α)为非负整数;Δh为正整数;其中,ΔL=α×Δh。本实施例的应用前提是,所述为所述队列分配所述动态缓存空间中的缓存空间(ΔL)不大于所述动态缓存空间的剩余存储空间,也即当所述动态缓存空间还有大于等于所述ΔL的缓存资源时,为所述队列分配所述缓存空间(ΔL)。

具体的,申请加入动态预先为每个队列配置调整系数(α),作为一种实施方式,所述调整系数α的大小与所述队列的优先级正相关,即当所述队列的优先级高时,相应的所述队列的调整系数(α)也大;当所述队列的优先级低时,相应的所述队列的优先级也小。例如,当所述队列的优先级为2时,所述队列的调整系数(α)配置为2;当所述队列的优先级为1时,所述队列的调整系数α配置为1。图3为本发明实施例的动态缓存空间的应用场景示意图;如图3所示,假设本示意中有两个队列,分别为第一队列和第二队列,其中,所述第一队列的优先级较低,假设所述第一队列的调整系数(α)等于2;所述第二队列的优先级较高,假设所述第二队列的调整系数(α)等于4;假定所述动态缓存空间的存储空间的最小分配步长(Δh)等于1。则图3中,每个小格表征所述动态缓存空间的存储空间的最小分配步长(Δh),则最底层的四个小格表征4×Δh,可以理解为,第二队列的调整系数(α)等于4,则为所述第二队列分配的缓存空间ΔL2=4×Δh。倒数第二层的两个小格表征2×Δh,可以理解为,第一队列的调整系数(α)等于2,则为所述第二队列分配的缓存空间(ΔL1)=2×Δh。作为另一种实施方式,所述调整系数(α)的大小也可以根据所述队列的业务需求预先配置。可以理解为,所述调整系数(α)的大小可以依据业务类型预先配置,也可有人工自行配置。

进一步地,计算为所述队列分配所述动态缓存空间中的缓存空间ΔL=α×Δh,以及计算所述动态缓存空间的剩余存储空间R(t),当所述动态缓存空间的剩余存储空间R(t)大于所述缓存空间(ΔL)时,则为所述队列一次性分配所述缓存空间ΔL大小的存储空间。

作为另一实施方式,所述为所述队列分配所述动态缓存空间中的缓存空间之后,所述方法还包括:

为所述队列分配的所述动态缓存空间中的缓存空间被所述队列占满后,重新为所述队列分配静态缓存空间中的缓存空间。

在本实施例中,具体的,所述网络通信设备为存储在所述静态缓存空间和所述动态缓存空间中的队列分配不同的标记,例如,为存储在所述静态缓存空间的队列分配标记0,为存储在所述动态缓存空间的队列分配标记1。当所述队列加入至所述共享缓存空间时,默认为所述队列分配所述静态缓存空间的存储空间,即为所述队列分配标记0;当所述队列申请加入所述动态缓存空间且申请成功后,为所述队列分配标记1。进一步地,为队列分配的标记需要作为队列内容的一部分传递给下游模块,用于资源回收处理;资源回收时是根据队列的标记,确定是回收静态缓存空间的资源还是回收动态缓存空间的资源。在所述队列占用所述动态缓存空间中的缓存空间过程中,所述队列在原所述静态缓存空间只进行缓存释放操作,直至为所述队列分配的动态缓存空间占满后,重新为新的入队分配静态缓存空间中的缓存空间。

采用本发明实施例的技术方案,通过预先配置的动态缓存空间作为区分优先级的动态缓存调整区,所述动态缓存空间可在网络拥塞场景时进行基于优先级的动态缓存分配和释放;一方面可以根据网络实时情况为不同缓存需求的业务实现动态缓存空间的申请和释放,增加了对共享缓存空间的利用率,增强了系统对网络动态变化的适应性;另一方面对动态缓存空间可按照优先级进行动态分配,使得共享缓存空间能够更好地为高优先级业务服务,大大提升了网络的服务质量;最后,本发明实施例中所述动态缓存空间只涉及全部共享缓存空间的部分空间,减小了设计的复杂性,同时减小了现有技术中将全部缓存按优先级设置导致缓存浪费。

实施例二

本发明实施例还提供了一种共享缓存分配方法。图4为本发明实施例二的共享缓存分配方法的流程示意图;如图4所示,所述方法包括:

步骤201:配置静态缓存空间和动态缓存空间。

本实施例中,假设为一组(两个)队列(分别为队列0和队列1,其中所述队列0的优先级高于队列1的优先级)进行共享缓存空间的分配。

这里,假设共享缓存空间总容量为64,配置静态缓存空间容量为32,动态缓存空间容量为32。配置动态缓存空间的优先级区间为16,即高优先级最多可占用所述动态缓存空间中的32个缓存空间,低优先级最多可占用所述动态缓存空间中的16个缓存空间。

步骤202:根据新加入的队列表征获取参数配置。

具体的,可根据新加入的队列号从预先设置的配置表中获取到所述参数配置,所述参数配置包括:静态缓存空间的丢弃阈值(包括高阈值和低阈值)和丢弃概率表、以及上一次更新得到的缓存深度。假设所述高阈值设为30,则两个队列公平共享这30个空间,每个队列分到15个缓存空间。

步骤203:获取缓存标记,当标记为0时,执行步骤204至步骤209;当标记为1时,直接执行步骤207。

这里,基于队列号获取缓存标记,当标记为0时表示为所述队列分配静态缓存空间的存储空间,则执行步骤204至步骤209。当标记为1时,表示为所述队列直接分配动态缓存空间的存储空间。

步骤204:计算所述静态缓存区域的存储空间的估计值,比较所述估计值和预设丢弃阈值,获得丢弃情况;其中,所述丢弃阈值包括高阈值和低阈值。

这里,假设当前所述两个队列均已入队,则激活队列数为2。且所述队列0上一次更新得到的缓存深度为15,则计算当前所述队列0的缓存深度为15+1=16。则所述静态缓存区域的存储空间的估计值=2×16=32,所述估计值大于等于所述高阈值(30)。

步骤205:判断所述估计值是否高于所述高阈值,当判断的结果为是时,执行步骤206至步骤208;当判断的结果为否时,执行步骤209。

这里,当所述队列0的估计值高于所述高阈值后,执行步骤206,发起动态缓存空间申请。同理,所述队列1的估计值高于所述高阈值后,执行步骤206, 发起动态缓存空间申请。

当所述估计值未达到所述高阈值时,执行步骤209:按当前丢弃情况输出。

步骤206:发起动态缓存空间申请;当申请成功后,执行步骤207至步骤208;当申请失败后,执行步骤209。其中,当申请失败后,由于步骤204中计算得出所述估计值大于等于所述高阈值(30),则确定当前丢弃情况为完全丢弃。

这里,确定所述队列0和所述队列1的优先级均达未达到对应的预设优先级门限,且所述动态缓存空间的剩余存储空间大于预设阈值后,确定申请成功;反之,确定所述队列0和所述队列1的优先级均达到预设优先级门限,和/或,所述动态缓存空间的剩余存储空间小于等于预设阈值后,则申请失败。其中,所述预设阈值可以是所述动态缓存空间的最小分配步长Δh。

步骤207:获取调整系数,基于所述调整系数确定为所述队列0和队列1的分配的动态缓存空间中的存储空间。

这里,基于队列号从预先配置的配置表中获得调整系数α。假设队列0的调整系数α1=2,所述队列1的调整系数α2=1,所述动态缓存空间的最小分配步长为Δh=2。则为所述队列0分配的动态缓存空间的缓存空间ΔL1=α1×Δh=2×2=4;为所述队列1分配的动态缓存空间的缓存空间ΔL2=α2×Δh=1×2=2。当前所述动态缓存空间的剩余存储空间R(t)为32,所述剩余存储空间R(t)大于为所述队列0分配的动态缓存空间的缓存空间ΔL1,因此为所述队列0一次动态分配4个缓存空间;相应的,所述剩余存储空间R(t)大于为所述队列1分配的动态缓存空间的缓存空间ΔL2,因此为所述队列1一次动态分配2个缓存空间。

步骤208:当前队列被正常转发,为队列配置标记1,表示占用动态缓存空间。

本实施例中,在所述队列占用所述动态缓存空间中的缓存空间过程中,所述队列在原所述静态缓存空间只进行缓存释放操作,直至为所述队列分配的所述动态缓存空间中的存储区域被所述队列占满;也即为所述队列0分配的4个缓存空间未被占满之前,所述队列0在所述静态缓存空间中的资源回收时用所 述标记0进行静态空间回收。另一方面,所述队列0在所述动态缓存空间中也可能进行回收处理,即所述队列0在所述动态缓存空间中的资源回收时用所述标记1进行动态空间回收;当为所述队列0成功分配了静态缓存空间的入队后,即将所述队列0的标记1改为标记0,并控制所述队列0转发至所述静态缓存空间,重新进行所述静态缓存空间的随机早期丢弃规则,即重新执行本实施例中步骤204至步骤209的过程。

进一步地,本实施例中,在所述动态缓存空间分配过程中,计算所述动态缓存空间的剩余存储空间R(t),每分配出一个存储空间时,所述剩余存储空间R(t)减一;每回收一个存储空间时,所述剩余存储空间R(t)加一。

采用本发明实施例的技术方案,通过预先配置的动态缓存空间作为区分优先级的动态缓存调整区,所述动态缓存空间可在网络拥塞场景时进行基于优先级的动态缓存分配和释放;一方面可以根据网络实时情况为不同缓存需求的业务实现动态缓存空间的申请和释放,增加了对共享缓存空间的利用率,增强了系统对网络动态变化的适应性;另一方面对动态缓存空间可按照优先级进行动态分配,使得共享缓存空间能够更好地为高优先级业务服务,大大提升了网络的服务质量;最后,本发明实施例中所述动态缓存空间只涉及全部共享缓存空间的部分空间,减小了设计的复杂性,同时减小了现有技术中将全部缓存按优先级设置导致缓存浪费。

实施例三

本发明实施例还提供了一种共享缓存分配装置,所述共享缓存分配装置可应用于各种网络通信设备中。图5为本发明实施例三的共享缓存分配装置的一种组成结构示意图,如图5所示,所述装置包括:配置单元31、第一处理单元32和第二处理单元33;其中,

所述配置单元31,用于预先配置共享缓存空间为静态缓存空间和动态缓存空间;

所述第一处理单元32,用于当有队列加入,且所述静态缓存空间的存储空间满足第一预设条件时,控制所述队列发起动态缓存空间申请;

所述第二处理单元33,用于判定所述第一处理单元32发起的所述队列的动态缓存空间申请满足第二预设条件时,依据所述队列预先配置的调整系数为所述队列分配所述动态缓存空间中的缓存空间。

具体的,所述第一处理单元32,用于比较所述静态缓存空间的存储空间的估计值是否大于等于第一阈值,获得比较结果;当所述比较结果为所述静态缓存空间的存储空间的估计值大于等于第一阈值时,确定所述静态缓存空间的存储空间满足第一预设条件;其中,所述静态缓存空间的存储空间的估计值等于所述静态缓存空间中的激活队列数与队列缓存深度的乘积。

具体的,所述第二处理单元33,用于判断所述队列的优先级是否满足预设优先级门限,并且所述动态缓存空间的剩余存储空间是否大于第二阈值,获得判断结果;其中,所述第二阈值为所述动态缓存空间的最小分配步长;当所述判断结果为所述队列的优先级满足预设优先级门限,并且所述动态缓存空间的剩余存储空间大于第二阈值时,确定所述队列的动态缓存空间申请满足第二预设条件。

具体的,所述第二处理单元33,用于依据所述调整系数α以及所述动态缓存空间的存储空间的最小分配步长(Δh)获得为所述队列分配所述动态缓存空间中的缓存空间(ΔL);所述调整系数α为非负整数;Δh为正整数;其中,ΔL=α×Δh。

本实施例中,所述配置单元31预先配置以下参数在配置表中:

1、静态缓存空间的容量和动态缓存空间的容量(所述静态缓存空间的容量和所述动态缓存空间的容量的总和为共享缓存空间的总容量);

2、静态缓存空间的丢弃阈值(包括高阈值和低阈值)和丢弃概率表;

3、动态缓存空间的优先级门限;

4、动态缓存空间的最小分配步长(Δh)和调整系数(α)。

本实施例中,所述第一处理单元32比较所述静态缓存空间的存储空间的估计值和所述高阈值(即第一阈值);当所述静态缓存空间的存储空间的估计值大于等于高阈值(即第一阈值)时,确定所述静态缓存空间的存储空间满足第一 预设条件,从而触发动态缓存空间申请。

进一步地,当有新队列加入时,所述配置单元31中预先存储有配置表,从所述配置表中能够获得丢弃阈值(包括高阈值和低阈值)以及丢弃概率表;所述第一处理单元32依据所述静态缓存空间当前的存储情况获得队列上一次更新得到的缓存深度,计算当前队列的缓存深度等于所述上一次更新得到的缓存深度与当前新队列需要的缓存申请数。进一步地,统计所述静态缓存空间中的激活队列数;基于所述激活队列数以及所述共享缓存深度计算所述静态缓存空间的存储空间的估计值;所述估计值等于激活队列数与队列缓存深度的乘积。进一步地,用所述估计值与所述丢弃阈值(包括高阈值和低阈值)进行比较,当比较结果为所述估计值小于所述低阈值时,不进行任何丢弃操作;当比较结果为所述估计值在所述低阈值和所述高阈值之间时,对新加入的数据包按预设丢弃概率表进行随机丢弃操作;当所述估计值大于等于所述高阈值时,触发所述队列发起动态缓存空间申请。

本实施例中,当所述第一处理单元32控制所述队列发起动态缓存空间申请后,所述第二处理单元33首先判断当前所述动态缓存空间的存储空间是否还能够存储新加入的队列以及所述队列是否满足动态缓存空间的申请条件;其中,为了体现不同的优先级可以获得不同的服务,优选地,作为一种实施方式,所述动态缓存空间可预先配置优先级门限,即当申请在所述动态缓存空间中的队列的优先级未达到其对应的优先级门限时,才可为所述队列分配所述动态缓存空间的存储空间。另一方面,当所述队列的优先级未达到其对应的优先级门限时,进一步判断所述动态缓存空间中的剩余存储空间是否大于第二阈值,所述第二阈值可以为所述动态缓存空间的最小分配步长Δh,当然,所述第二阈值也可以是预先配置的其他数值,本实施例中不作具体限定。

具体的,申请加入动态预先为每个队列配置调整系数α,作为一种实施方式,所述调整系数α的大小与所述队列的优先级正相关,即当所述队列的优先级高时,相应的所述队列的调整系数α也大;当所述队列的优先级低时,相应的所述队列的优先级也小。例如,当所述队列的优先级为2时,所述队列的调 整系数α配置为2;当所述队列的优先级为1时,所述队列的调整系数α配置为1。如图3所示,假设本示意中有两个队列,分别为第一队列和第二队列,其中,所述第一队列的优先级较低,假设所述第一队列的调整系数α等于2;所述第二队列的优先级较高,假设所述第二队列的调整系数α等于4;假定所述动态缓存空间的存储空间的最小分配步长Δh等于1。则图3中,每个小格表征所述动态缓存空间的存储空间的最小分配步长Δh,则最底层的四个小格表征4×Δh,可以理解为,第二队列的调整系数α等于4,则为所述第二队列分配的缓存空间ΔL2=4×Δh。倒数第二层的两个小格表征2×Δh,可以理解为,第一队列的调整系数α等于2,则为所述第二队列分配的缓存空间ΔL1=2×Δh。作为另一种实施方式,所述调整系数α的大小也可以根据所述队列的业务需求预先配置。可以理解为,所述调整系数α的大小可以依据业务类型预先配置,也可有人工自行配置。

进一步地,所述第二处理单元33计算为所述队列分配所述动态缓存空间中的缓存空间ΔL=α×Δh,以及计算所述动态缓存空间的剩余存储空间R(t),当所述动态缓存空间的剩余存储空间R(t)大于所述缓存空间ΔL时,则为所述队列一次性分配所述缓存空间ΔL大小的存储空间。

作为另一实施方式,所述第二处理单元33,还用于为所述队列分配的所述动态缓存空间中的缓存空间被所述队列占满后,触发所述第一处理单元32重新为新的入队分配静态缓存空间中的缓存空间。

在本实施例中,具体的,所述配置单元31为存储在所述静态缓存空间和所述动态缓存空间中的队列分配不同的标记,例如,为存储在所述静态缓存空间的队列分配标记0,为存储在所述动态缓存空间的队列分配标记1。当所述队列加入至所述共享缓存空间时,默认为所述队列分配所述静态缓存空间的存储空间,即为所述队列分配标记0;当所述队列申请加入所述动态缓存空间且申请成功后,为所述队列分配标记1。在所述队列占用所述动态缓存空间中的缓存空间过程中,所述队列在原所述静态缓存空间只进行缓存释放操作,直至为所述队列分配的所述动态缓存空间中的缓存空间被所述队列占满后,即为所述队 列分配标记0,控制为所述队列重新分配静态缓存空间中的缓存空间。

本领域技术人员应当理解,本发明实施例的共享缓存分配装置中各处理单元的功能,可参照前述共享缓存分配方法的相关描述而理解,本发明实施例的共享缓存分配装置中各处理单元,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件在智能终端上的运行而实现。

本实施例中,所述共享缓存分配装置中的配置单元31、第一处理单元32和第二处理单元33在实际应用中,均可由所述装置中的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。

基于图5所示的共享缓存分配装置,图6为本发明实施例三的共享缓存分配装置的另一种组成结构示意图;本实施例中所述共享缓存分配装置中的配置单元31、第一处理单元32和第二处理单元33可通过图6中所示的模块实现,具体包括:

所述配置单元31可通过队列阈值配置模块41和动态缓存配置模块42实现,即配置参数;所述队列阈值配置模块41可用于存储静态缓存空间的容量和动态缓存空间的容量(所述静态缓存空间的容量和所述动态缓存空间的容量的总和为共享缓存空间的总容量)、静态缓存空间的丢弃阈值(包括高阈值和低阈值)和丢弃概率表;所述动态缓存配置模块42可用于存储动态缓存空间的优先级门限、动态缓存空间的最小分配步长(Δh)和调整系数(α)等等。

所述第一处理单元32可通过队列缓存计算模块43、比较模块44和动态缓存申请模块45实现;所述队列缓存计算模块43可用于计算所述静态缓存空间的存储空间的估计值,具体的计算方法可参照实施例一至实施例三中所述,这里不再赘述。所述比较模块44用于比较所述估计值和所述队列阈值配置模块41中配置的丢弃阈值,基于比较结果执行预设丢弃操作,并在所述估计值高于所述丢弃阈值中的高阈值时,通过所述动态缓存申请模块45发起所述动态缓存区域的申请。

所述第二处理单元33可通过动态空间计算模块46实现,所述动态空间计算模块46用于判断所述动态缓存申请模块45发出的申请是否满足触发条件,并在满足触发条件后,依据队列的调整系数为所述队列分配所述动态缓存空间中的缓存空间,具体的分配方法可参照实施例一至实施例三所述,这里不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立 的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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