一种数据调度方法及装置制造方法
【专利摘要】本发明涉及通信【技术领域】,尤其涉及一种数据调度方法及装置,以解决级别化服务质量HQoS系统中,采用现有差值加权轮询DWRR方法可能导致数据队列在某一调度级别中的一个数据发送组中长时间无法调度的问题。该方法中,获取从数据队列上一次离开开始,特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;若记录满足设定条件,将数据队列置于特定数据发送组中当前处于active状态的链上。而非将数据队列固定置于处于standby状态的链的尾部,避免了数据队列在该特定数据发送组中长时间无法被调度的问题。
【专利说明】—种数据调度方法及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种数据调度方法及装置。
【背景技术】
[0002]服务质量(Quality of Service,QoS)技术中,根据不同业务对业务质量的要求进行数据调度,通常通过多个队列发送数据,不同队列具有不同优先级。
[0003]差值加权轮询(Deficit Weighted Round Robin, DffRR)是一种QoS技术中使用的队列调度方法,其将多个队列分别划分到不同的队列链中,只有处于激活(active)状态的链中队列的数据包会被发送。现有的一种DWRR调度方法,通过将队列在处于激活状态的链和处于等待(standby)状态的链之间切换,实现对各队列的调度,具体调度方法包括:
[0004]I)将处于active状态的链中第一个队列当前第一个数据包的包长和第一个队列的DC(deficit counter,差值计数器)比较,确定是否发送数据包;
[0005]2)若处于active状态的链中所有队列的数据都调度完,切换到原先处于standby状态的链进行调度,则该原处于standby状态的链成为当前处于active状态的链,原处于active状态的链成为当前处于standby状态的链,按上述步骤I)对当前处于active状态的链中的数据包进行处理;
[0006]3)对于新上链的队列,其固定置于处于standby状态的链的尾部。
[0007]上面介绍的DWRR方法,可应用于传统QoS技术中,目前,出现一种新的QoS技术,即级别化服务质量(Hierarchical Quality of Service, HQoS)技术,该技术实现了针对不同用户、不同业务,甚至不同流量等传输对象进行分级调度。下面,分别通过图1和图2说明HQoS技术中分级调度的概念。
[0008]图1所示的分级调度模型中,调度级别可包括端口级别、用户组级别、用户级别和业务级别四个级别,按照该四个级别分别进行调度。
[0009]图2所示的分级调度模型中,调度级别可包括端口组级别、端口级别、用户级别和业务级别四个级别,按照该四个级别分别进行调度。
[0010]HQoS技术的分级方式有很多,图1、图2所示的分级调度模型仅为示意。上述DWRR方法应用到HQoS技术中时,存在如下问题:
[0011]在采用HQoS技术的通信系统(以下简称“HQoS系统”)中,各级别之间互相影响,当前调度级别的数据队列会因为前一调度级别输入的成员属性等原因在当前调度级别中在具有不同数据发送级别的多个数据发送组间动态切换。比如,对于图1所示的按用户级别进行的第三级调度,用户m对应的数据队列(简称“队列m”,m为正整数)可能因其上的某些业务结束,进入图1所示的第二级调度的不同的用户组。若采用上述DWRR方法,用户m在进入用户组η (η为正整数)时固定置于用户组η中处于standby状态的链上,若在用户组η的两个链在active状态和standby状态切换之前,队列m就离开了用户组η,则队列m中的数据无法发送。若队列m不断地在各用户组间切换,每一次在用户组η中时,用户组η的两个链都没有来得及进行状态切换,则导致队列m在用户组η中长时间无法被调度。[0012]综上,在HQoS系统中应用上述DWRR方法进行数据调度时,可能导致当前调度级别中的数据队列在该调度级别中的某一数据发送组中长时间无法被调度。
【发明内容】
[0013]本发明实施例提供一种数据调度方法及装置,用以解决在HQoS系统中,采用现有的DWRR方法调度,可能导致当前调度级别中的数据队列在该调度级别中的某一数据发送组中长时间无法被调度的问题。
[0014]第一方面,本发明实施例提供一种数据调度方法,包括:
[0015]检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;
[0016]在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
[0017]结合第一方面,在第一种可能的实现方式中,在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上,包括:
[0018]若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态切换了奇数次,则将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
[0019]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
[0020]记录所述数据队列上一次离开所述特定数据发送组时所处的链的链标识;
[0021]若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态切换了 O次或偶数次,则将所述数据队列置于所述特定数据发送组中,链标识与记录的链标识相同的链上。
[0022]结合第一方面,在第三种可能的实现方式中,在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上,包括:
[0023]若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态已切换过,则将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
[0024]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
[0025]记录所述数据队列上一次离开所述特定数据发送组时所处的链的链标识;
[0026]若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态未发生切换,则将所述数据队列置于所述特定数据发送组中,链标识与记录的链标识相同的链上。
[0027]结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述特定数据发送组在所述调度级别上的至少两个数据发送组中具有最低的数据发送级别。[0028]结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式,在第一方面的第六种可能的实现方式中,所述方法应用于级别化服务质量HQoS系统中,所述调度级另IJ为所述HQoS系统中多个调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
[0029]第二方面,本发明实施例提供一种数据调度装置,包括:至少一个第一级存储器、一个调度级别上的至少两个第二级存储器、所述第一级存储器和所述第二级存储器之间的I/o接口,以及处理器;
[0030]每一个所述第一级存储器用于存储一个数据队列;
[0031]每一个第二级存储器用于存储由所述I/O接口转发的所述第一级存储器中的数据队列;
[0032]所述处理器用于:检测存在所述第一级存储器中的数据队列通过所述I/O接口进入所述第二级存储器中的一个特定存储器时,获取从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;在获取的所述链状态切换记录满足设定条件时,将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
[0033]结合第二方面,在第一种可能的实现方式中,所述处理器具体用于:
[0034]若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态切换了奇数次,则将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
[0035]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还用于:
[0036]记录检测到的所述数据队列上一次离开所述特定存储器时所处的链的链标识;
[0037]若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态切换了 O次或偶数次,则将检测到的所述数据队列置于所述特定存储器中,链标识与记录的链标识相同的链上。
[0038]结合第二方面,在第三种可能的实现方式中,所述处理器具体用于:
[0039]若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态已切换过,则将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
[0040]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器还用于:
[0041]记录检测到的所述数据队列上一次离开所述特定存储器时所处的链的链标识;
[0042]若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态未发生切换,则将检测到的所述数据队列置于所述特定存储器中,链标识与记录的链标识相同的链上。
[0043]结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式、第二方面的第三种可能的实现方式、第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述特定存储器在所述调度级别上的至少两个所述第二存储器中具有最低的数据发送级别。
[0044]结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式、第二方面的第三种可能的实现方式、第二方面的第四种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置应用于级别化服务质量HQoS系统中,所述调度级另IJ为所述HQoS系统中各调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
[0045]在本发明实施例提供的数据调度方法中,数据队列进入特定数据发送组时,在获取的链状态切换记录满足设定条件时,将该数据队列置于该特定数据发送组中当前处于active状态的链上,而不是采用现有的DWRR方法,将该数据队列固定置于处于standby状态的链的尾部,避免了数据队列进入特定数据发送组时,固定处于该特定数据发送组中当前处于standby状态的链的尾部,该数据队列在该特定数据发送组中长时间无法被调度的问题。同时采用本发明实施例提供的数据调度方法,由于数据队列可以被及时调度,从而避免了由于该数据队列在数据发送组间切换,无法被调度,与该调度级别的其他数据队列相比,缺乏调度的公平性,数据队列之间调度不精确的问题。
【专利附图】
【附图说明】
[0046]图1为HQoS技术中的一种分级调度模型;
[0047]图2为HQoS技术中的另一种分级调度模型;
[0048]图3为本发明实施例提供的数据调度方法的流程图;
[0049]图4为本发明实施例一的流程图;
[0050]图5为本发明实施例提供的第一种数据调度装置的结构示意图;
[0051]图6为本发明实施例提供的第二种数据调度装置的结构示意图。
【具体实施方式】
[0052]本发明实施例提供一种数据调度方法及装置,用以解决在HQoS系统中,采用现有的DWRR方法调度,当前调度级别中的数据队列在该调度级别中的某一数据发送组中长时间无法被调度的问题。
[0053]在本发明实施例提供的数据调度方法中,检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从该数据队列上一次离开该特定数据发送组开始,该特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;在获取的链状态切换记录满足设定条件时,将该数据队列置于该特定数据发送组中当前处于active状态的链上。
[0054]该方法中,数据队列进入特定数据发送组时,在获取的链状态切换记录满足设定条件时,将该数据队列置于该特定数据发送组中当前处于active状态的链上,而不是采用现有的DWRR方法,将该数据队列固定置于处于standby状态的链的尾部,避免了数据队列进入特定数据发送组时,固定处于该特定数据发送组中当前处于standby状态的链的尾部,该数据队列在该特定数据发送组中长时间无法被调度的问题。同时采用本发明实施例提供的数据调度方法,由于数据队列可以被及时调度,从而避免了由于该数据队列在数据发送组间切换,无法被调度,与该调度级别的其他数据队列相比,缺乏调度的公平性,数据队列之间调度不精确的问题。
[0055]下面,结合附图对本发明实施例进行详细说明。
[0056]图3为本发明实施例提供的数据调度方法的流程图。如图3所示,该方法包括:
[0057]S301:检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从该数据队列上一次离开该特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间切换的链状态切换记录;
[0058]S302:在获取的链状态切换记录满足设定条件时,将该数据队列置于该数据发送组中当前处于active状态的链上。
[0059]本发明实施例提供的数据调度方法,应用于HQoS系统中,其针对HQoS系统的一个调度级别上的特定数据发送组,在数据队列进入该特定数据发送组时,不再固定地置于处于standby状态的链上,解决了数据队列在数据组间频繁切换时,在该特定数据发送组中长时间无法被调度的问题。
[0060]该方法中,该特定数据发送组均包括两个链,每个链上有一个或多个数据队列,该特定数据发送组中的两个链在active状态和standby状态之间切换,当处于active状态的链上的所有数据队列中的数据均发送完毕时,处于active状态的链切换到standby状态,同时,原处于standby状态的链切换到active状态。
[0061]上述步骤中,数据队列离开特定数据发送组,存在两种可能的情况:一、进入其他数据发送组;二、下链。无论上述哪种情况,均会获取从数据队列上一次离开该特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间切换的链状态切换记录;并在获取的链状态切换记录满足设定条件时,确定将数据队列置于该特定数据发送组中当前处于active状态的链上。
[0062]可采用多种方式记录特定数据发送组的两个链在active状态和standby状态之间切换的情况,这里,列举以下两种方式,本领域技术人员在了解以下两种方式后,可根据自身系统实现的需要,进行可能的变形和改变,但只要其根据链状态切换记录,确定是否将数据队列置于特定数据发送组中当前处于active状态的链上,以解决本发明要解决数据队列频繁在数据组间切换时,在该特定数据发送组无法被调度的问题,则都应落在本发明权利要求的保护范围内。
[0063]方式一、记录从数据队列上一次离开特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间切换的次数;或者记录切换了奇数次还是偶数次(切换O次可认为是偶数次的一种特例);
[0064]方式二、记录从数据队列上一次离开特定数据发送组开始,该特定数据发送组的两个链在active状态和standby状态之间是否切换过。
[0065]对于方式一,若链的状态切换了奇数次,确定将数据队列置于该特定数据发送组中当前处于active状态的链上;
[0066]可选地,若链的状态切换了 O次或偶数次,确定将数据队列置于该特定数据发送组中,链标识与记录的数据队列上一次离开该特定数据发送组时所处的链的链标识相同的链上。
[0067]比如:对特定数据发送组中的两个链分别进行标识,比如,一个链的标识为“0”,简称该链为“链O” ;另一个链的标识为“I”,简称该链为“链I”。[0068]下面,分以下四种应用场景,分别说明在采用上述方式一时,本发明实施例的数据
调度方法。
[0069]应用场景一、
[0070]数据队列离开特定数据发送组时的链为链0,离开时该链O处于active状态;重新进入该特定数据发送组时,该特定数据发送组从上一次数据队列离开时,链O和链I之间状态切换了 I次,即数据队列重新进入时,链O处于standby状态;
[0071]采用上述方式一,由于链的状态切换了奇数次,则将数据队列置于当前处于active状态的链上,即链I上。由于数据队列离开时处于active状态的链上,重新进入时,仍置于active状态的链上,才能实现原本应尽快发送的数据及时发送。
[0072]应用场景二、
[0073]数据队列离开特定数据发送组时的链为链0,离开时,该链O处于standby状态;重新进入该特定数据发送组时,该特定数据发送组从上一次数据队列离开时,链O和链I之间状态切换了 3次,即数据队列重新进入时,链O处于active状态;
[0074]采用上述方式一,将数据队列置于处于active状态的链上。由于链间的切换通常是在处于active状态的链上的数据均发送完时发生的,也就是原来处于active状态的链上的数据已经发送完了,已经轮到原来处于standby状态的链上的数据发送,此时,将数据队列置于处于active状态的链上,也符合链间轮询的规律,实现了数据队列中数据的及时发送,同时又不违背各数据队列间调度的公平性,提高了调度的精度。
[0075]应用场景三、
[0076]数据队列离开特定数据发送组时的链为链0,离开时,该链O处于active状态;重新进入该特定数据发送组时,该特定数据发送组从上一次数据队列离开时,链O和链I之间状态切换了 O次;
[0077]采用上述方式一,将数据队列置于该特定数据发送组中,链标识与数据队列上一次离开该特定数据发送组时所处的链的链标识相同的链上,即将数据队列重新置于链O上,由于链状态未切换过,链O仍处于active状态,数据队列中的数据能够及时发送,同时又不违背各数据队列间调度的公平性,同样能够保证调度的精度。
[0078]应用场景四、
[0079]数据队列离开特定数据发送组时的链为链0,离开时,该链O处于standby状态;重新进入该特定数据发送组时,该特定数据发送组从上一次数据队列离开时,链O和链I之间状态切换了 2次;
[0080]采用上述方式一,将数据队列置于该特定数据发送组中,链标识与数据队列上一次离开该特定数据发送组时所处的链的链标识相同的链上,即将数据队列重新置于链O上,由于经过链状态的转换,实现了两个链中数据的轮询,而链O仍处于standby状态,数据队列中的数据需要暂时等待,保证了各数据队列间调度的公平性,进而保证调度的精度。
[0081]将上述四种应用场景及采用上述方式一时,相应的数据调度方法总结如下面的表
1
[0082]表I
[0083]
【权利要求】
1.一种数据调度方法,其特征在于,所述方法包括: 检测存在数据队列进入到一个调度级别上的特定数据发送组时,获取从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组的两个链在激活active状态和等待standby状态之间切换的链状态切换记录; 在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
2.如权利要求1所述的方法,其特征在于,在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上,包括: 若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态切换了奇数次,则将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
3.如权利要求2所述的方法,其特征在于,所述方法还包括: 记录所述数据队列上一次离开所述特定数据发送组时所处的链的链标识; 若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态切换了 O次或偶数次,则将所述数据队列置于所述特定数据发送组中,链标识与记录的链标识相同的链上。
4.如权利要求1所 述的方法,其特征在于,在获取的所述链状态切换记录满足设定条件时,将所述数据队列置于所述特定数据发送组中当前处于active状态的链上,包括: 若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态已切换过,则将所述数据队列置于所述特定数据发送组中当前处于active状态的链上。
5.如权利要求4所述的方法,其特征在于,还包括: 记录所述数据队列上一次离开所述特定数据发送组时所处的链的链标识; 若所述链状态切换记录指示从所述数据队列上一次离开所述特定数据发送组开始,所述特定数据发送组中链的状态未发生切换,则将所述数据队列置于所述特定数据发送组中,链标识与记录的链标识相同的链上。
6.如权利要求1~5任一项所述的方法,其特征在于,所述特定数据发送组在所述调度级别上的至少两个数据发送组中具有最低的数据发送级别。
7.如权利要求1~5任一项所述的方法,其特征在于,所述方法应用于级别化服务质量HQoS系统中,所述调度级别为所述HQoS系统中多个调度级别中的一个,包括:端口组级别、端口级别、用户组级别、用户级别或业务级别。
8.一种数据调度装置,其特征在于,所述装置包括:至少一个第一级存储器、一个调度级别上的至少两个第二级存储器、所述第一级存储器和所述第二级存储器之间的I/O接口,以及处理器; 每一个所述第一级存储器用于存储一个数据队列; 每一个第二级存储器用于存储由所述I/O接口转发的所述第一级存储器中的数据队列; 所述处理器用于:检测存在所述第一级存储器中的数据队列通过所述I/O接口进入所述第二级存储器中的一个特定存储器时,获取从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器的两个链在激活active状态和等待standby状态之间切换的链状态切换记录;在获取的所述链状态切换记录满足设定条件时,将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
9.如权利要求8所述的装置,其特征在于,所述处理器具体用于: 若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态切换了奇数次,则将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
10.如权利要求9所述的装置,其特征在于,所述处理器还用于: 记录检测到的所述数据队列上一次离开所述特定存储器时所处的链的链标识; 若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态切换了 O次或偶数次,则将检测到的所述数据队列置于所述特定存储器中,链标识与记录的链标识相同的链上。
11.如权利要求8所述的装置,其特征在于,所述处理器具体用于: 若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态已切换过,则将检测到的所述数据队列置于所述特定存储器中当前处于active状态的链上。
12.如权利要求11所述的装置,其特征在于,所述处理器还用于: 记录检测到的所述数据队列上一次离开所述特定存储器时所处的链的链标识; 若所述链状态切换记录指示从检测到的所述数据队列上一次离开所述特定存储器开始,所述特定存储器中链的状态未发生切换,则将检测到的所述数据队列置于所述特定存储器中,链标识与记录的链标识相同的链上。
13.如权利要求8~12任一项所述的装置,其特征在于,所述特定存储器在所述调度级别上的至少两个所述第二存储器中具有最低的数据发送级别。
14.如权利要求8~12任一项所述的装置,其特征在于,所述装置应用于级别化服务质量HQoS系统中,所述调度级别为所述HQoS系统中各调度级别中的一个,包括--端口组级别、端口级别、用户组级别、用户级别或业务级别。
【文档编号】H04L12/865GK103997468SQ201410223069
【公开日】2014年8月20日 申请日期:2014年5月23日 优先权日:2014年5月23日
【发明者】时彦平, 李中华 申请人:华为技术有限公司