CN103997468B - 一种数据调度方法及装置 - Google Patents
一种数据调度方法及装置 Download PDFInfo
- Publication number
- CN103997468B CN103997468B CN201410223069.0A CN201410223069A CN103997468B CN 103997468 B CN103997468 B CN 103997468B CN 201410223069 A CN201410223069 A CN 201410223069A CN 103997468 B CN103997468 B CN 103997468B
- Authority
- CN
- China
- Prior art keywords
- chain
- data
- specific
- transmission group
- data queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信技术领域,尤其涉及一种数据调度方法及装置,以解决级别化服务质量HQoS系统中,采用现有差值加权轮询DWRR方法可能导致数据队列在某一调度级别中的一个数据发送组中长时间无法调度的问题。该方法中,获取从数据队列上一次离开开始,特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;若记录满足设定条件,将数据队列置于特定数据发送组中当前处于active状态的链上。而非将数据队列固定置于处于standby状态的链的尾部,避免了数据队列在该特定数据发送组中长时间无法被调度的问题。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据调度方法及装置。
背景技术
服务质量(Quality of Service,QoS)技术中,根据不同业务对业务质量的要求进行数据调度,通常通过多个队列发送数据,不同队列具有不同优先级。
差值加权轮询(Deficit Weighted Round Robin,DWRR)是一种QoS技术中使用的队列调度方法,其将多个队列分别划分到不同的队列链中,只有处于激活(active)状态的链中队列的数据包会被发送。现有的一种DWRR调度方法,通过将队列在处于激活状态的链和处于等待(standby)状态的链之间切换,实现对各队列的调度,具体调度方法包括:
1)将处于active状态的链中第一个队列当前第一个数据包的包长和第一个队列的DC(deficit counter,差值计数器)比较,确定是否发送数据包;
2)若处于active状态的链中所有队列的数据都调度完,切换到原先处于standby状态的链进行调度,则该原处于standby状态的链成为当前处于active状态的链,原处于active状态的链成为当前处于standby状态的链,按上述步骤1)对当前处于active状态的链中的数据包进行处理;
3)对于新上链的队列,其固定置于处于standby状态的链的尾部。
上面介绍的DWRR方法,可应用于传统QoS技术中,目前,出现一种新的QoS技术,即级别化服务质量(Hierarchical Quality of Service,HQoS)技术,该技术实现了针对不同用户、不同业务,甚至不同流量等传输对象进行分级调度。下面,分别通过图1和图2说明HQoS技术中分级调度的概念。
图1所示的分级调度模型中,调度级别可包括端口级别、用户组级别、用户级别和业务级别四个级别,按照该四个级别分别进行调度。
图2所示的分级调度模型中,调度级别可包括端口组级别、端口级别、用户级别和业务级别四个级别,按照该四个级别分别进行调度。
HQoS技术的分级方式有很多,图1、图2所示的分级调度模型仅为示意。上述DWRR方法应用到HQoS技术中时,存在如下问题:
在采用HQoS技术的通信系统(以下简称“HQoS系统”)中,各级别之间互相影响,当前调度级别的数据队列会因为前一调度级别输入的成员属性等原因在当前调度级别中在具有不同数据发送级别的多个数据发送组间动态切换。比如,对于图1所示的按用户级别进行的第三级调度,用户m对应的数据队列(简称“队列m”,m为正整数)可能因其上的某些业务结束,进入图1所示的第二级调度的不同的用户组。若采用上述DWRR方法,用户m在进入用户组n(n为正整数)时固定置于用户组n中处于standby状态的链上,若在用户组n的两个链在active状态和standby状态切换之前,队列m就离开了用户组n,则队列m中的数据无法发送。若队列m不断地在各用户组间切换,每一次在用户组n中时,用户组n的两个链都没有来得及进行状态切换,则导致队列m在用户组n中长时间无法被调度。
综上,在HQoS系统中应用上述DWRR方法进行数据调度时,可能导致当前调度级别中的数据队列在该调度级别中的某一数据发送组中长时间无法被调度。
发明内容
本发明实施例提供一种数据调度方法及装置,用以解决在HQoS系统中,采用现有的DWRR方法调度,可能导致当前调度级别中的数据队列在该调度级别中的某一数据发送组中长时间无法被调度的问题。
第一方面,本发明实施例提供一种数据调度方法,包括:
检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;
在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
结合第一方面,在第一种可能的实现方式中,在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上,包括:
若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态切换了奇数次,则将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
记录所述数据队列上一次离开所述特定数据发送组时所处的链的链标识;
若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态切换了0次或偶数次,则将所述数据队列置于所述特定数据发送组中,链标识与记录的链标识相同的链上。
结合第一方面,在第三种可能的实现方式中,在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上,包括:
若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态已切换过,则将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
记录所述数据队列上一次离开所述特定数据发送组时所处的链的链标识;
若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态未发生切换,则将所述数据队列置于所述特定数据发送组中,链标识与记录的链标识相同的链上。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述特定数据发送组在所述调度级别上的至少两个数据发送组中具有最低的数据发送级别。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式,在第一方面的第六种可能的实现方式中,所述方法应用于级别化服务质量HQoS系统中,所述调度级别为所述HQoS系统中多个调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
第二方面,本发明实施例提供一种数据调度装置,包括:至少一个第一级存储器、一个调度级别上的至少两个第二级存储器、所述第一级存储器和所述第二级存储器之间的I/O接口,以及处理器;
每一个所述第一级存储器用于存储一个数据队列;
每一个第二级存储器用于存储由所述I/O接口转发的所述第一级存储器中的数据队列;
所述处理器用于:检测存在所述第一级存储器中的数据队列通过所述I/O接口进入所述第二级存储器中的一个特定存储器时,获取从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;在获取的所述链状态切换记录满足设定条件时,将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
结合第二方面,在第一种可能的实现方式中,所述处理器具体用于:
若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态切换了奇数次,则将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还用于:
记录检测到的所述数据队列上一次离开所述特定存储器时所处的链的链标识;
若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态切换了0次或偶数次,则将检测到的所述数据队列置于所述特定存储器中,链标识与记录的链标识相同的链上。
结合第二方面,在第三种可能的实现方式中,所述处理器具体用于:
若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态已切换过,则将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器还用于:
记录检测到的所述数据队列上一次离开所述特定存储器时所处的链的链标识;
若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态未发生切换,则将检测到的所述数据队列置于所述特定存储器中,链标识与记录的链标识相同的链上。
结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式、第二方面的第三种可能的实现方式、第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述特定存储器在所述调度级别上的至少两个所述第二存储器中具有最低的数据发送级别。
结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式、第二方面的第三种可能的实现方式、第二方面的第四种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置应用于级别化服务质量HQoS系统中,所述调度级别为所述HQoS系统中各调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
在本发明实施例提供的数据调度方法中,数据队列进入特定数据发送组时,在获取的链状态切换记录满足设定条件时,将该数据队列置于该特定数据发送组中当前处于active状态的链上,而不是采用现有的DWRR方法,将该数据队列固定置于处于standby状态的链的尾部,避免了数据队列进入特定数据发送组时,固定处于该特定数据发送组中当前处于standby状态的链的尾部,该数据队列在该特定数据发送组中长时间无法被调度的问题。同时采用本发明实施例提供的数据调度方法,由于数据队列可以被及时调度,从而避免了由于该数据队列在数据发送组间切换,无法被调度,与该调度级别的其他数据队列相比,缺乏调度的公平性,数据队列之间调度不精确的问题。
附图说明
图1为HQoS技术中的一种分级调度模型;
图2为HQoS技术中的另一种分级调度模型;
图3为本发明实施例提供的数据调度方法的流程图;
图4为本发明实施例一的流程图;
图5为本发明实施例提供的第一种数据调度装置的结构示意图;
图6为本发明实施例提供的第二种数据调度装置的结构示意图。
具体实施方式
本发明实施例提供一种数据调度方法及装置,用以解决在HQoS系统中,采用现有的DWRR方法调度,当前调度级别中的数据队列在该调度级别中的某一数据发送组中长时间无法被调度的问题。
在本发明实施例提供的数据调度方法中,检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从该数据队列上一次离开该特定数据发送组开始,该特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;在获取的链状态切换记录满足设定条件时,将该数据队列置于该特定数据发送组中当前处于active状态的链上。
该方法中,数据队列进入特定数据发送组时,在获取的链状态切换记录满足设定条件时,将该数据队列置于该特定数据发送组中当前处于active状态的链上,而不是采用现有的DWRR方法,将该数据队列固定置于处于standby状态的链的尾部,避免了数据队列进入特定数据发送组时,固定处于该特定数据发送组中当前处于standby状态的链的尾部,该数据队列在该特定数据发送组中长时间无法被调度的问题。同时采用本发明实施例提供的数据调度方法,由于数据队列可以被及时调度,从而避免了由于该数据队列在数据发送组间切换,无法被调度,与该调度级别的其他数据队列相比,缺乏调度的公平性,数据队列之间调度不精确的问题。
下面,结合附图对本发明实施例进行详细说明。
图3为本发明实施例提供的数据调度方法的流程图。如图3所示,该方法包括:
S301:检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从该数据队列上一次离开该特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间切换的链状态切换记录;
S302:在获取的链状态切换记录满足设定条件时,将该数据队列置于该数据发送组中当前处于active状态的链上。
本发明实施例提供的数据调度方法,应用于HQoS系统中,其针对HQoS系统的一个调度级别上的特定数据发送组,在数据队列进入该特定数据发送组时,不再固定地置于处于standby状态的链上,解决了数据队列在数据组间频繁切换时,在该特定数据发送组中长时间无法被调度的问题。
该方法中,该特定数据发送组均包括两个链,每个链上有一个或多个数据队列,该特定数据发送组中的两个链在active状态和standby状态之间切换,当处于active状态的链上的所有数据队列中的数据均发送完毕时,处于active状态的链切换到standby状态,同时,原处于standby状态的链切换到active状态。
上述步骤中,数据队列离开特定数据发送组,存在两种可能的情况:一、进入其他数据发送组;二、下链。无论上述哪种情况,均会获取从数据队列上一次离开该特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间切换的链状态切换记录;并在获取的链状态切换记录满足设定条件时,确定将数据队列置于该特定数据发送组中当前处于active状态的链上。
可采用多种方式记录特定数据发送组的两个链在active状态和standby状态之间切换的情况,这里,列举以下两种方式,本领域技术人员在了解以下两种方式后,可根据自身系统实现的需要,进行可能的变形和改变,但只要其根据链状态切换记录,确定是否将数据队列置于特定数据发送组中当前处于active状态的链上,以解决本发明要解决数据队列频繁在数据组间切换时,在该特定数据发送组无法被调度的问题,则都应落在本发明权利要求的保护范围内。
方式一、记录从数据队列上一次离开特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间切换的次数;或者记录切换了奇数次还是偶数次(切换0次可认为是偶数次的一种特例);
方式二、记录从数据队列上一次离开特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间是否切换过。
对于方式一,若链的状态切换了奇数次,确定将数据队列置于该特定数据发送组中当前处于active状态的链上;
可选地,若链的状态切换了0次或偶数次,确定将数据队列置于该特定数据发送组中,链标识与记录的数据队列上一次离开该特定数据发送组时所处的链的链标识相同的链上。
比如:对特定数据发送组中的两个链分别进行标识,比如,一个链的标识为“0”,简称该链为“链0”;另一个链的标识为“1”,简称该链为“链1”。
下面,分以下四种应用场景,分别说明在采用上述方式一时,本发明实施例的数据调度方法。
应用场景一、
数据队列离开特定数据发送组时的链为链0,离开时该链0处于active状态;重新进入该特定数据发送组时,该特定数据发送组从上一次数据队列离开时,链0和链1之间状态切换了1次,即数据队列重新进入时,链0处于standby状态;
采用上述方式一,由于链的状态切换了奇数次,则将数据队列置于当前处于active状态的链上,即链1上。由于数据队列离开时处于active状态的链上,重新进入时,仍置于active状态的链上,才能实现原本应尽快发送的数据及时发送。
应用场景二、
数据队列离开特定数据发送组时的链为链0,离开时,该链0处于standby状态;重新进入该特定数据发送组时,该特定数据发送组从上一次数据队列离开时,链0和链1之间状态切换了3次,即数据队列重新进入时,链0处于active状态;
采用上述方式一,将数据队列置于处于active状态的链上。由于链间的切换通常是在处于active状态的链上的数据均发送完时发生的,也就是原来处于active状态的链上的数据已经发送完了,已经轮到原来处于standby状态的链上的数据发送,此时,将数据队列置于处于active状态的链上,也符合链间轮询的规律,实现了数据队列中数据的及时发送,同时又不违背各数据队列间调度的公平性,提高了调度的精度。
应用场景三、
数据队列离开特定数据发送组时的链为链0,离开时,该链0处于active状态;重新进入该特定数据发送组时,该特定数据发送组从上一次数据队列离开时,链0和链1之间状态切换了0次;
采用上述方式一,将数据队列置于该特定数据发送组中,链标识与数据队列上一次离开该特定数据发送组时所处的链的链标识相同的链上,即将数据队列重新置于链0上,由于链状态未切换过,链0仍处于active状态,数据队列中的数据能够及时发送,同时又不违背各数据队列间调度的公平性,同样能够保证调度的精度。
应用场景四、
数据队列离开特定数据发送组时的链为链0,离开时,该链0处于standby状态;重新进入该特定数据发送组时,该特定数据发送组从上一次数据队列离开时,链0和链1之间状态切换了2次;
采用上述方式一,将数据队列置于该特定数据发送组中,链标识与数据队列上一次离开该特定数据发送组时所处的链的链标识相同的链上,即将数据队列重新置于链0上,由于经过链状态的转换,实现了两个链中数据的轮询,而链0仍处于standby状态,数据队列中的数据需要暂时等待,保证了各数据队列间调度的公平性,进而保证调度的精度。
将上述四种应用场景及采用上述方式一时,相应的数据调度方法总结如下面的表1。
表1
由表1可见,通过在数据队列进入特定数据发送组时,在获取的该特定数据队列上一次离开该数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间切换的链状态切换记录满足预设条件时,将数据队列置于active状态的链上,保证数据队列中数据尽快发送,同时,若数据队列离开该特定数据发送组时处于standby状态的链上,重新进入该特定数据发送组时,该特定数据发送组的链状态未切换或切换过偶数次,则将数据队列置于该特定数据发送组中当前处于standby状态的链上,从而保证该调度级别中各数据队列的调度的公平性,提高了调度的精度。
以上,以表1中的四种应用场景为例,说明了采用上述方式一时,本发明实施例提供的数据调度方法。下面,以五种应用场景为例,说明采用方式二时,本发明实施例提供的数据调度方法。
方式二、记录从数据队列上一次离开特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间是否切换过。
五种应用场景及相应的数据调度方法如下面的表2所示。
表2
从表2中可见,方式二的基本思想是,只要链状态切换过,就将数据队列置于处于active状态的链上,若链状态未切换过,则原来在什么状态的链上,重新进入时,还是在原来状态的链上。
在系统实现时,这种方式具有以下两个优点:
优点1、记录链状态切换的信息位少,仅需1位,且处理简单,在数据队列重新进入特定数据发送组之前,只要该特定数据发送组的链状态切换过,则仅记录一次,以后无需在监测链状态是否切换;
优点2,考虑到数据队列在数据发送组间切换的过程中,通常数据发送组的两个链之间状态切换的几率比较小,连续多次切换的几率就更小,因此,只要期间链状态未切换过,就将数据队列置于其离开时所处的链上,既考虑到链间轮询的公平性,同时也避免了现有的DWRR技术中,固定将数据队列置于standby状态的链上,数据队列无法调度的问题。
可选地,该特定数据发送组在该调度级别上的至少两个数据发送组中具有最低的数据发送级别。
比如,当该调度级别上有两个数据发送组时,该特定数据发送组具有较低数据发送级别,而另一个数据发送组则具有较高数据发送级别。
该可选方案进一步解决了采用现有的DWRR方法,数据队列调度过程中,低优先级业务的数据无法及时发送的问题。具体地,
仍以图1为例,对于第二级用户组级别的调度,当n=2时,即同时存在用户组1和用户组2,这里,一种常用的实现方式为:用户组1为高优先级用户组(具有较高的数据发送级别),用户组2为低优先级用户组(具有较低的数据发送级别),一种可能的情况是,当前用户m同时进行业务1、业务2、业务3和业务4,其中,业务3和业务4为低优先级业务,业务1和业务2为高优先级业务,在某一时刻用户m属于低优先级的用户组2(业务1和业务2暂无数据发送),当用户m的业务1和业务2有数据发送时,则用户m切换到高优先级的用户组1。
若采用现有的DWRR方法,通过链在active状态和standby状态之间切换的方式调度。当用户1的待发送数据的数据队列(以下简称“用户1的数据队列”)中高优先级的业务1和业务2的数据均发送完,用户1的数据队列由高优先级的用户组1切换到低优先级的用户组2,其固定置于低优先级的用户组2中当前处于standby状态的链尾部。
若在低优先级组的两个链进行状态切换前,用户1又有新的高优先级业务(比如:业务1)的数据需要发送,则按照通常的调度方法,用户1的数据队列从低优先级的用户组2切换到高优先级的用户组1。若用户1的高优先级的业务总是时有时无,则会造成用户1的数据队列不断在用户组1和用户组2之间切换,用户1的数据队列重新进入用户组2时,固定置于处于standby状态的链尾部,造成用户1的低优先级业务无法被调度,用户间调度不精确。
因此,从上述举例可见,当一个调度级别上存在多个数据发送组(比如:两个数据发送组),特定数据发送组具有最低的数据发送级别,只有在该特定数据发送组中时,数据队列中的低优先级业务的数据才得以发送,则存在上述数据队列中的高优先级的业务总是时有时无,数据队列在不断地进出该具有最低数据发送级别的特定数据发送组,当该数据队列进入该特定数据发送组时,固定置于处于standby状态的链尾部,造成该数据队列中的低优先级业务的数据无法及时发送的问题。
而当采用本发明实施例提供的该可选方案时,特定数据发送组为该调度级别中具有最低数据发送级别的数据发送组,当数据队列接入该特定数据发送组时,在该特定数据发送组的链状态切换记录满足设定条件时,将该数据队列置于该特定数据发送组中当前处于active状态的链上,避免了上述举例中,固定置于处于standby状态的链上,低优先级业务的数据无法及时发送的问题。
以上,介绍了本发明实施例提供的第数据调度方法。下面,通过实施例一对本发明实施例提供的第一种数据调度方法举例说明。
实施例一
一种采用HQoS技术的数据调度装置如图4所示,用户1~用户4的数据通过同一个端口发送。该端口内有高优先级组和低优先级组两个数据发送组。由于用户内部的不同业务(图4中各数据流)以及各用户对应的限流器(shaper)的限制,或者通过数据配置,各用户对应的数据流会进入端口的不同组(即高优先级组和低优先级组)。比如:四个用户的数据流在高优先级组的比例为1:2:3:4,在低优先级组内的比例可以为2:3:4:5.
当用户1动态的在高低优先级切换时,或者某个时刻,因用户1出口的带宽限制,用户1不在链上(即下链)时,若此时低优先级组的两个链在active状态和standby状态之间切换了一次,则当用户1再次的进入低优先级组时,不能按照现有的DWRR方法置于当前处于standby状态的链上,而是根据链状态切换记录确定是否将用户1置于当前处于active状态的链上。
比如:用户1首先从低优先级组的处于active状态的链跳至高优先级组,记录用户1离开低优先级组时所处的链的标识,同时将用户1置于高优先级组当前处于standby状态的链表的尾部;
当高优先级组的两个链进行了一次交换,用户1被轮询到,用户1的高优先级出队之后,用户1的低优先级业务申请没有空,但是用户1的shaper使得用户1暂时不能出队,当用户1再次能够申请出队时,便可重新进入低优先级组;此时,原低优先级组的链状态可能已经切换了1次或1次以上,根据历史记录,应将用户1置于低优先级组当前处于active状态的链上,如此才可能达到较精确的带宽比例和较小的延时。避免了采用现有的DWRR方法,每次置于当前处于standby状态的链的链尾,在极端情况下,用户1的低优先级业务永远都在处于standby状态的链上,导致断流的现象。
基于同一发明构思,本发明实施例还提供了两种数据调度装置,这两种数据调度装置解决技术问题的原理与本发明实施例提供的数据调度装置相似,其实施可参照方法的实施,重复之处不再赘述。
图5为本发明实施例提供的第一种数据调度装置的结构示意图。如图5所示,该装置包括:
至少一个第一级存储器501、一个调度级别上的至少两个第二级存储器503、第一级存储器501和第二级存储器503之间的I/O接口502,以及处理器504;
每一个第一级存储器501用于存储一个数据队列;
每一个第二级存储器503用于存储由I/O接口502转发的第一级存储器501中的数据队列;
处理器504用于:检测存在第一级存储器501中的数据队列通过I/O接口502进入第二级存储器503中的一个特定存储器时,获取从检测到的数据队列上一次离开特定存储器开始,特定存储器的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;在获取的链状态切换记录满足设定条件时,将检测到的数据队列置于特定存储器中当前处于active状态的链上。
可选地,处理器504具体用于:
若链状态切换记录指示从检测到的数据队列上一次离开特定存储器开始,特定存储器中链的状态切换了奇数次,则将检测到的数据队列置于特定存储器中当前处于active状态的链上。
可选地,处理器504还用于:
记录检测到的数据队列上一次离开特定存储器时所处的链的链标识;
若链状态切换记录指示从检测到的数据队列上一次离开特定存储器开始,特定存储器中链的状态切换了0次或偶数次,则将检测到的数据队列置于特定存储器中,链标识与记录的链标识相同的链上。
可选地,处理器504具体用于:
若链状态切换记录指示从检测到的数据队列上一次离开特定存储器开始,特定存储器中链的状态已切换过,则将检测到的数据队列置于特定存储器中当前处于active状态的链上。
可选地,处理器504还用于:
记录检测到的数据队列上一次离开特定存储器时所处的链的链标识;
若链状态切换记录指示从检测到的数据队列上一次离开特定存储器开始,特定存储器中链的状态未发生切换,则将检测到的数据队列置于特定存储器中,链标识与记录的链标识相同的链上。
可选地,特定存储器在调度级别上的至少两个第二存储器中具有最低的数据发送级别。
可选地,本发明实施例提供的第一种数据调度装置应用于HQoS系统中,第二级存储器503所在的调度级别为该HQoS系统中各调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
图6为本发明实施例提供的第二种数据调度装置的结构示意图。如图6所示,该装置包括:
检测模块601,用于检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从数据队列上一次离开特定数据发送组开始,特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;
调度模块602,用于在检测模块601获取的链状态切换记录满足设定条件时,将数据队列置于特定数据发送组中当前处于active状态的链上。
可选地,调度模块602具体用于:
若链状态切换记录指示从数据队列上一次离开特定数据发送组开始,特定数据发送组中链的状态切换了奇数次,则将数据队列置于特定数据发送组中当前处于active状态的链上。
可选地,检测模块601还用于:
记录数据队列上一次离开特定数据发送组时所处的链的链标识;
调度模块602还用于:若链状态切换记录指示从数据队列上一次离开特定数据发送组开始,特定数据发送组中链的状态切换了0次或偶数次,则将数据队列置于特定数据发送组中,链标识与记录的链标识相同的链上。
可选地,调度模块602具体用于:
若链状态切换记录指示从数据队列上一次离开特定数据发送组开始,特定数据发送组中链的状态已切换过,则将数据队列置于特定数据发送组中当前处于active状态的链上。
可选地,检测模块601还用于:
记录数据队列上一次离开特定数据发送组时所处的链的链标识;
调度模块602还用于:若链状态切换记录指示从数据队列上一次离开特定数据发送组开始,特定数据发送组中链的状态未发生切换,则将数据队列置于特定数据发送组中,链标识与记录的链标识相同的链上。
可选地,特定数据发送组在调度级别上的至少两个数据发送组中具有最低的数据发送级别。
可选地,本发明实施例提供的第二种数据调度装置应用于HQoS系统中,特定数据发送组所在的调度级别为该HQoS系统中多个调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
综上,本发明实施例提供一种数据调度方法和装置,数据队列进入特定数据发送组时,在获取的链状态切换记录满足设定条件时,将该数据队列置于该特定数据发送组中当前处于active状态的链上,而不是采用现有的DWRR方法,将该数据队列固定置于处于standby状态的链的尾部,避免了数据队列进入特定数据发送组时,固定处于该特定数据发送组中当前处于standby状态的链的尾部,该数据队列在该特定数据发送组中长时间无法被调度的问题。同时,由于数据队列可以被及时调度,从而避免了由于该数据队列在数据发送组间切换,无法被调度,与该调度级别的其他数据队列相比,缺乏调度的公平性,数据队列之间调度不精确的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种数据调度方法,其特征在于,所述方法包括:
检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;
在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上;
其中,在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上,包括:
若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态切换了奇数次,则将所述数据队列置于所述特定数据发送组中当前处于active状态的链上;
所述方法还包括:
记录所述数据队列上一次离开所述特定数据发送组时所处的链的链标识;
若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态切换了0次或偶数次,则将所述数据队列置于所述特定数据发送组中,链标识与记录的链标识相同的链上;或者
在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上,包括:
若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态已切换过,则将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
2.如权利要求1所述的方法,其特征在于,还包括:
记录所述数据队列上一次离开所述特定数据发送组时所处的链的链标识;
若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态未发生切换,则将所述数据队列置于所述特定数据发送组中,链标识与记录的链标识相同的链上。
3.如权利要求1~2任一项所述的方法,其特征在于,所述特定数据发送组在所述调度级别上的至少两个数据发送组中具有最低的数据发送级别。
4.如权利要求1或2所述的方法,其特征在于,所述方法应用于级别化服务质量HQoS系统中,所述调度级别为所述HQoS系统中多个调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
5.一种数据调度装置,其特征在于,所述装置包括:至少一个第一级存储器、一个调度级别上的至少两个第二级存储器、所述第一级存储器和所述第二级存储器之间的I/O接口,以及处理器;
每一个所述第一级存储器用于存储一个数据队列;
每一个第二级存储器用于存储由所述I/O接口转发的所述第一级存储器中的数据队列;
所述处理器用于:检测存在所述第一级存储器中的数据队列通过所述I/O接口进入所述第二级存储器中的一个特定存储器时,获取从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;在获取的所述链状态切换记录满足设定条件时,将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上;
所述处理器具体用于:
若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态切换了奇数次,则将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上;
所述处理器还用于:
记录检测到的所述数据队列上一次离开所述特定存储器时所处的链的链标识;
若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态切换了0次或偶数次,则将检测到的所述数据队列置于所述特定存储器中,链标识与记录的链标识相同的链上;或者
所述处理器具体用于:
若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态已切换过,则将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
6.如权利要求5所述的装置,其特征在于,所述处理器还用于:
记录检测到的所述数据队列上一次离开所述特定存储器时所处的链的链标识;
若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态未发生切换,则将检测到的所述数据队列置于所述特定存储器中,链标识与记录的链标识相同的链上。
7.如权利要求5~6任一项所述的装置,其特征在于,所述特定存储器在所述调度级别上的至少两个所述第二级存储器中具有最低的数据发送级别。
8.如权利要求5或6所述的装置,其特征在于,所述装置应用于级别化服务质量HQoS系统中,所述调度级别为所述HQoS系统中各调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410223069.0A CN103997468B (zh) | 2014-05-23 | 2014-05-23 | 一种数据调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410223069.0A CN103997468B (zh) | 2014-05-23 | 2014-05-23 | 一种数据调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103997468A CN103997468A (zh) | 2014-08-20 |
CN103997468B true CN103997468B (zh) | 2017-09-12 |
Family
ID=51311477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410223069.0A Active CN103997468B (zh) | 2014-05-23 | 2014-05-23 | 一种数据调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103997468B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483361B (zh) * | 2016-06-08 | 2022-04-15 | 中兴通讯股份有限公司 | 一种调度模型构建方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217499A (zh) * | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 队列调度方法 |
CN102316009A (zh) * | 2010-07-08 | 2012-01-11 | 创锐讯通讯科技(上海)有限公司 | 改进的dwrr调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8457142B1 (en) * | 2011-02-18 | 2013-06-04 | Juniper Networks, Inc. | Applying backpressure to a subset of nodes in a deficit weighted round robin scheduler |
-
2014
- 2014-05-23 CN CN201410223069.0A patent/CN103997468B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217499A (zh) * | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 队列调度方法 |
CN102316009A (zh) * | 2010-07-08 | 2012-01-11 | 创锐讯通讯科技(上海)有限公司 | 改进的dwrr调度方法 |
Non-Patent Citations (1)
Title |
---|
QoS框架中队列调度功能的设计和实现;肖赵斌;《硕士论文》;20121231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103997468A (zh) | 2014-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3129880B1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
US11977784B2 (en) | Dynamic resources allocation method and system for guaranteeing tail latency SLO of latency-sensitive application | |
EP2902914B1 (en) | Data transmission method and device | |
CN103309738A (zh) | 用户作业调度方法及装置 | |
EP3238386B1 (en) | Apparatus and method for routing data in a switch | |
CN106383764B (zh) | 一种数据采集方法和设备 | |
CN104182278B (zh) | 一种判定计算机硬件资源繁忙程度的方法和装置 | |
CN105264509A (zh) | 融合网络中的自适应中断联合 | |
CN103346902B (zh) | 数据采集调度的方法及系统 | |
CN106354616B (zh) | 监测应用执行性能的方法、装置及高性能计算系统 | |
EP2713270A1 (en) | Resource scheduling method and device | |
CN106130960B (zh) | 盗号行为的判断系统、负载调度方法和装置 | |
CN109408220A (zh) | 一种任务处理方法及装置 | |
CN105791371A (zh) | 一种云存储服务系统及方法 | |
WO2016197458A1 (zh) | 一种流量控制的方法及装置 | |
CN110019386A (zh) | 一种流数据处理方法及设备 | |
CN107624181B (zh) | 包括虚拟处理器的闲置和调度的虚拟机管理方法和装备 | |
CN115002047A (zh) | 一种远程直接数据存取方法、装置、设备以及存储介质 | |
CN104346220B (zh) | 一种任务调度方法与系统 | |
CN103997468B (zh) | 一种数据调度方法及装置 | |
US9501321B1 (en) | Weighted service requests throttling | |
US9298652B2 (en) | Moderated completion signaling | |
Movaghar | Analysis of a dynamic assignment of impatient customers to parallel queues | |
US20200301732A1 (en) | Information processing system and non-transitory computer readable medium storing program | |
CN110209350A (zh) | 一种混合存储架构hpc系统中应用i/o请求的动态调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |