一种调整流处理单元负载分担的方法及装置的制作方法

文档序号:7686600阅读:117来源:国知局

专利名称::一种调整流处理单元负载分担的方法及装置的制作方法
技术领域
:本发明涉及负载分担技术,尤指一种调整流处理单元负载分担的方法及装置。
背景技术
:参见图1,图1所示为分布式流处理架构的结构示意图,包括流分发单元和多个流处理单元。为了提高网络系统的流处理性能,通常采用图1所示的分布式流处理架构对数据流进行处理。其中,流分发单元用于接收数据,并根据一定的分流策略将收到的数据流发送至流处理单元处理。为了实现网络系统内流处理单元的负载均衡,流分发单元通常利用HASH算法对收到的数据流进行处理。流分发单元建立如表一所示的流处理单元索引表,该索引表由数据流索引和流处理单元标识两个部分組成,其中数据流索引用来标识数据流,每个数据流索引对应一个流处理单元标识。<table>tableseeoriginaldocumentpage4</column></row><table>表一如表一所示,假设当前系统有N个流处理单元,则流分发单元计算数据流索引的具体实现方式为流分发单元在收到数据流的流首包时,将流首包的五元组作为HASH函数的输入参数得到固定长度的HASH值,将该HASH值对N取余得到该数据流对应的数据流索引。然后,流分发单元依据表一索引得到对应的流处理单元标识,依据该流首包对应的五元组和得到的流处理单元标识建立该数据流的流表,该数据流的后续报文则依据建立的流表发送至对应的流处理单元进行处理。依据HASH算法的特性,HASH算法能保证计算出来的HASH值是一个固定长度的值,并且当输入参数变化时,计算出来的值在该长度范围内离散随机分布,因此也能保证该HASH值对流处理单元个数N取余后的查表索引在0N-1的范围内离散随机分布。在流处理单元索引表中的数据流索引和流处理单元标识是——对应的关系,因此按照上述方法进行分流能够使各流处理单元处理大体相同数目的数据流,实现流处理单元的负载均衡。虽然,上述现有技术能够实现流处理单元的负载均衡,但没有提供调整各流处理单元分担负载的技术方案。例如在如图2所示的情况下,假定系统原先有三个流处理单元,每个流处理单元上已建流的条数分别为1000。这时在系统中增加一个流处理单元,则此时,对应的流处理单元索引表如表二所示。数据流索引流处理单元标识0ID01ID,2ID23ID3表二如果此时还存在IOOO条需要新建的流,那么按照现有技术方案,后续新建的1000条流将平均分到四个流处理单元上,最终每个流处理单元处理的流数量将是1250,1250,1250,250。可见,没有实现各流处理单元的负载均衡。此时,则需要对流处理单元分担的负载进行调整,由于现有技术中没有提供相关的技术方案,因此不能灵活对各流处理单元分担的负载进行调整。
发明内容有鉴于此,本发明提供了一种调整流处理单元负载分担的方法及装置,应用本发明所提供的方法及装置能够灵活的调整各流处理单元的负载分担。为达到上述目的,本发明的技术方案是这样实现的一种调整流处理单元负载分担的方法,用于索引流处理单元的流处理单元索引表包括数据流索引及处理该数据流的流处理单元标识;当需要调整流处理单元的负载分担时,按照分流策略调整所述流处理单元索引表内的流处理单元标识。一种调整流处理单元负载分担的装置,该装置包括存储单元,用于保存索引流处理单元的流处理单元索引表;所述流处理单元索引表包括数据流索引及处理该数据流的流处理单元标识;调整单元,用于在需要调整流处理单元的负载分担时,按照分流策略调整所述存储单元中流处理单元索引表内的流处理单元标识。本发明所提供的一种调整流处理单元负载分担的技术方案,在需要调整流处理单元的负载分担时,按照分流策略调整流处理单元索引表内的流处理单元标识。通过调整索引表内的流处理单元标识,使数据流索引与流处理单元之间的对应关系发生变化,从而使处理数据流的流处理单元发生变化,实现对流处理单元负载分担的灵活调整。图i为现有技术中分布式流处理架构的结构图;图2为现有技术中分布式流处理架构一具体示例图;图3为本发明实施例中方法的流程图;图4为本发明实施例中装置的结构图;图5为本发明实施例装置应用在分布式流处理架构下的结构示意图。具体实施方式在本部分的详细描述中,仅通过对实施本发明的发明者所预期的最佳方式的示例,示出并描述了本发明的较佳实施例。应意识到,可以在不背离本发明的前提下,就各个显而易见的方面对其进行修改。相应地,附图和说明书应被视为在本质上是示例性的,而不是限制性的。在本发明实施例的技术方案中,可以在需要调整流处理单元的负载分担时,调整流处理单元索引表内的流处理单元标识以满足具体的分流策略。由于数据流具体发往哪个流处理单元处理,是由流处理单元索引表内数据流索引和流处理单元标识之间的对应关系确定的,因此在需要调整流处理单元的负载分担时,可以根据实际的情况调整流处理单元索引表中的流处理单元标识,使数据流索引与流处理单元之间的对应关系发生变化,这样就能够使处理数据流的流处理单元发生变化,进而实现按照分流策略灵活调整流处理单元的负载分担。例如,在图2的场景下,由于流处理单元4的加入导致网络系统内各流处理单元的负载分担不均,按照本发明实施例方案,则可以在新增流处理单元4后,调整流处理单元索引表内流处理单元标识,使之修改为如表三所示的形式。<table>tableseeoriginaldocumentpage7</column></row><table>表三这样,根据表三所示的流处理单元索引表进行分流的话,流分发单元则会将收到的后1000数据流发送至新增的流处理单元4处理。在流处理单元1、2、3和4处理数据流的条数到达均;街时,则可以再次修改流处理单元索引表中的流处理单元标识,修改成如表二所示的形式。进而,流处理单元l、2、3和4则可以根据表二所示的索引表实现负载均衡。在本发明实施例的技术方案中,由于数据流后续的报文是依据建立的流表发送至对应的流处理单元进行处理,这里对流处理单元索引表的修改不会对已经确定了数据流处理单元的数据流产生影响。因此,本发明实施例的技术方案能够顺利对流处理单元承担的负载进行调整。另外,本发明实施例还可以首先按照分流策略确定各流处理单元的分流比,即处理后续数据流的分流比;然后按照确定的分流比在流处理单元索引表中填充各流处理单元标识。其中,按照分流比在流处理单元索引表中填充各流处理单元标识的具体方式,可以通过表四进行清楚的介绍。<table>tableseeoriginaldocumentpage8</column></row><table>表四如果按照分流策略确定流处理单元0的分流比为50%、流处理单元1的分流比为0%、流处理单元2的分流比为0%、流处理单元3的分流比为50%;则按照上述分流比,在流处理单元索引表的流处理单元标识区域内不填写流处理单元1和流处理单元2的标识,而对于流处理单元0和流处理单元3,按照50%分布,即分别对应50%*4=2个数据流索引。在表四所示的流处理单元索引表内,流处理单元0的标识对应0和1的数据流索引,流处理单元3的标识对应2和3的数据流索引。当然,流处理单元0的标识不一定需要对应0和1的数据流索引,也可以对应1和2,只要满足50%的分布即可。如果流处理单元0的分流比为60%,流处理单元3的分流比为40%,由于60%*4=2.4不对应一个整凄t,而60%*4=1.6也不对应一个整凄t。此时,可以进行取整运算,即让流处理单元0对应2个数据流索引、使流处理单元3对应1个数据流索引,剩下的1各数据流索引可以使其对应流处理单元标识0或3。对于这种情况,总体的处理原则就是使流处理单元标识在流处理单元索引表内的分布比例最大程度的接近分流比。这里,为了更加方便的按比例调整流处理单元索引表内流处理单元的标识,可以直接将流首包五元组经过HASH运算得到的值作为数据流的索引值。由于经过HASH运算得到的值是随机离散分布的,因此按照这种方法计算的数据流索引值同样是随机离散分布的。经过改进后,流处理单元索引表中的项数就会增加,就能更加方便的调整流处理单元的分担比例,具体如表五所示。<table>tableseeoriginaldocumentpage9</column></row><table>表五当报文来自VPN私网时,还可以根据该报文的六元组计算得到对应的数据流索引。该六元组除了包括五元组包含的源IP、目的IP、源端口号、目的端口号、IP层承载的协议类型外,还包括流所属的VPN私网ID。在本发明实施例的技术方案中,按照分流策略确定各流处理单元的分流比具体可以是按照分流策略从各流处理单元获取所需的资源占用信息,根据资源占用信息确定各流处理单元的分流比。当分流策略基于CPU占用率时,则从各流处理单元获取各自的CPU占有率,才艮据CPU占有率确定各各流处理单元的分流比;当分流策略基于已建流条数时,则从各流处理单元获取各自的已建流条数,根据已建流条数确定各流处理单元的分流比;当分流策略基于最大新建流速率时,从各流处理单元获取各自的最大新建流速率,根据最大新建流速率确定各流处理单元的分流比。为使本发明实施例的目的及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步的详细说明。参见图3,图3为本发明实施例方法的流程图。具体包括以下步骤在步骤301中,当需要调整流处理单元的负载分担时,按照分流策略从各流处理单元获取所需的资源占用信息。其中,需要调整流处理单元的负载分担的情况包括在新增流处理单元时,根据分流策略调整新旧流处理单元负载分担情况;也可以是指周期性调整负载分担时,当前周期到达时;还可以是在更改分流策略的情况下,或者其他需要调整流处理单元负载分担的情况。此时,当分流策略基于CPU占用率时,则需要从各流处理单元获取各自的CPU占有率;当分流策略基于已建流条数时,则需要从各流处理单元获取各自的已建流条数;当分流策略基于最大新建流速率时,需要从各流处理单元获取各自的最大新建流速率,用来计算分流比。在步骤302中,根据获取的资源占用信息确定各流处理单元的分流比。当分流策略基于CPU占用率时,根据<formula>formulaseeoriginaldocumentpage10</formula>计算得到各流处理单元的分流比;其中,"表示流处理单元的个数;l表示m号流处理单元的CPU占有率、OSwS"-1;尨表示m号流处理单元的分流比。可见,流处理单元的分流比和自己本身的CPU占有率以及整个系统中其他流处理单元的CPU占有率都相关。若当前流处理单元的CPU占有率相对其他流处理单元的CPU占有率较低,那么该流处理单元的分流比就较大,反之较小。当分流策略基于已建流条数时,根据<formula>formulaseeoriginaldocumentpage11</formula>计算得到各流处理单元的分流比;其中,"表示流处理单元<formula>formulaseeoriginaldocumentpage11</formula>的个数;L表示m号流处理单元的已建流条数、<formula>formulaseeoriginaldocumentpage11</formula>;/1m表示w号流处理单元的分流比。可见,这里与CPU占有率类似,若当前流处理单元已建的流条数相对其他流处理单元较少,那么该流处理单元的分流比就较大,反之较小。在一些特殊情况下,如系统初始化,此时各流处理单元的已建流条数均为0,此时,则不必*按照上述乂>式,可以直接令<formula>formulaseeoriginaldocumentpage11</formula>。当分流策略基于最大新建流速率时,根据;<formula>formulaseeoriginaldocumentpage11</formula>计算得到各<formula>formulaseeoriginaldocumentpage11</formula>流处理单元的分流比;其中,"表示流处理单元的个数;凡表示w号流处理单元的最大新建流速率、<formula>formulaseeoriginaldocumentpage11</formula>;尨表示w号流处理单元的分流比。流处理单元的最大新建流速率代表了当前流处理单元处理新建流的能力,因此本策略与前面两种策略相反,若当前流处理单元处理新建流的能力相对其他的流处理单元强,则分流比一交大。在步骤303中,按照确定的分流比在所述流处理单元索引表中填充各流处理单元标识。另外,介绍本发明实施例的另一方面。参见图4,图4为本发明实施例所提供的一种调整流处理单元负载分担的装置,该装置包括存储单元和调整单元。其中,存储单元,用于保存索引流处理单元的流处理单元索引表;所述流处理单元索引表包括数据流索引及处理该数据流的流处理单元标识。调整单元,用于在需要调整流处理单元的负载分担时,按照分流策略调整所述存储单元中流处理单元索引表内的流处理单元标识。另外,本装置还可以进一步包括分流管理单元,用于按照分流策略确定各流处理单元的分流比,并发送至调整单元。相应的,调整单元则根据收到的分流比在所述流处理单元索引表中填充各流处理单元标识。分流管理单元,可以按照分流策略向各流处理单元请求所需的资源占用信息;并根据各流处理单元返回的资源占用信息确定各流处理单元的分流比。分流管理单元向各流处理单元请求所需的资源占用信息可以采用广播请求的方式。其中,计算各流处理单元分流比的计算方法可以是基于CPU占用率、已建流条数和最大新建流速率。具体的计算方法可参见方法实施例中的相关介绍,在此不再详述。当本实施例装置中的存储单元和调整单元位于流分发单元内,本实施例装置应用在分布式流处理架构下的结构示意图如图5所示,包括分流管理单元,多个流处理单元和流分发单元。其中流分发单元内包括调整单元、存储单元和执行单元。分流管理单元在需要调整流处理单元的负载分担时,依据分流策略向所有流处理单元广播获取资源占用信息的请求;各流处理单元收到请求后,依据请求的信息获取自身的资源占用信息,并向分流管理单元返回该信息;分流管理单元根据分流策略计算每个流处理单元对应的分流比,并将该数据发给流分发单元内的调整单元;调整单元依据收到的分流比,在存储单元内的流处理单元索引表中填充各流处理单元标识;流分发单元内的执行单元根据存储单元内保存的流处理单元索引表进行数据流的分流。这里,需要注意的是,在图5中所示的双线箭头代表数据通道,单线箭头代表控制通道。本实样就不会影响数据通道上的带宽。本发明实施例的技术方案,通过调整索引表内的流处理单元标识,使数据流索引与流处理单元之间的对应关系发生变化,从而使处理数据流的流处理单元发生变化,实现对流处理单元负载分担的灵活调整。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种调整流处理单元负载分担的方法,其特征在于,用于索引流处理单元的流处理单元索引表包括数据流索引及处理该数据流的流处理单元标识;当需要调整流处理单元的负载分担时,按照分流策略调整所述流处理单元索引表内的流处理单元标识。2、根据权利要求1所述的方法,其特征在于,所述按照分流策略调整所述流处理单元索引表内的流处理单元标识包括按照分流策略确定各流处理单元的分流比;按照确定的分流比在所述流处理单元索引表中填充各流处理单元标识。3、根据权利要求2所述的方法,其特征在于,按照分流策略确定各流处理单元的分流比包括按照分流策略从各流处理单元获取所需的资源占用信息,根据资源占用信息确定各流处理单元的分流比。4、根据权利要求3所述的方法,其特征在于,当分流策略基于CPU占有率时,从各流处理单元获取各自的CPU占有率,根据;u=-^-计算得到各流处理单元的分流比;(i-;r0)+(u)+……其中,"表示流处理单元的个数;i表示w号流处理单元的CPU占有率、o^附s—i;义m表示m号流处理单元的分流比。5、根据权利要求3所述的方法,其特征在于,当分流策略基于已建流条数时,从各流处理单元获取各自的已建流数目,根据;u--^-、x=-^-计算得到各流处理单(i_Zo)+(Ui)+……+(i—1"-1)r0+ri+……r"-i元的分流比;其中,"表示流处理单元的个数;rm表示w号流处理单元的已建流条数、osws"—i;l表示w号it处理单元的分流比。6、根据权利要求3所述的方法,其特征在于,当分流策略基于最大新建流速率时,从各流处理单元获取各自的最大新建流速率,根据<formula>formulaseeoriginaldocumentpage3</formula>计算得到各流处理单元的分流比;其中,"表示流处理单元的个数;h表示w号流处理单元的最大新建流速率、0s"^"-l;;u表示OT号流处理单元的分流比。7、根据权利要求1至6中任一权利要求所述的方法,其特征在于,所述数据流索引为数据流五元组或六元组根据哈希算法计算得到的值。8、一种调整流处理单元负载分担的装置,其特征在于,该装置包括存储单元,用于保存索引流处理单元的流处理单元索引表;所述流处理单元索引表包括数据流索引及处理该数据流的流处理单元标识;调整单元,用于在需要调整流处理单元的负载分担时,按照分流策略调整所述存储单元中流处理单元索引表内的流处理单元标识。9、根据权利要求8所述的装置,其特征在于,该方法进一步包括分流管理单元;所述分流管理单元,用于按照分流策略确定各流处理单元的分流比,并发送至调整单元;所述调整单元,用于根据收到的分流比在所述流处理单元索引表中填充各流处理单元标识。10、根据权利要求9所述的装置,其特征在于,所述分流管理单元,用于按照分流策略向各流处理单元请求所需的资源占用信息;根据各流处理单元返回的资源占用信息确定各流处理单元的分流比。全文摘要本发明公开了一种调整流处理单元负载分担的技术方案,用于索引流处理单元的流处理单元索引表包括数据流索引及处理该数据流的流处理单元标识;当需要调整流处理单元的负载分担时,按照分流策略调整所述流处理单元索引表内的流处理单元标识。本发明的技术方案通过调整索引表内的流处理单元标识,使数据流索引与流处理单元之间的对应关系发生变化,从而使处理数据流的流处理单元发生变化,实现对流处理单元负载分担的灵活调整。文档编号H04L12/56GK101217491SQ200810055648公开日2008年7月9日申请日期2008年1月4日优先权日2008年1月4日发明者晓李,凯瞿,炜郑申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1