一种大数据业务中基于流调度的链路拥塞确定方法及装置的制造方法

文档序号:10515393阅读:194来源:国知局
一种大数据业务中基于流调度的链路拥塞确定方法及装置的制造方法
【专利摘要】本发明实施例公开了一种大数据业务中基于流调度的链路拥塞确定方法及装置,应用于数据中心网络中的控制节点,所述数据中心网络还包括至少两个任务节点,所述方法包括:接收每个任务节点发送的、该任务节点向其他任务节点传输的数据流的发送速率;针对每一数据流,获得上次确定的所述数据流的分配发送速率;针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值;根据所述拥塞值,确定所述链路是否存在拥塞。应用本发明实例,可以确定数据中心网络中的链路是否存在拥塞。
【专利说明】
一种大数据业务中基于流调度的链路拥塞确定方法及装置
技术领域
[0001]本发明涉及信息技术领域,特别涉及一种大数据业务中基于流调度的链路拥塞确定方法及装置。
【背景技术】
[0002]在过去的几年中,随着大数据业务的迅速普及,越来越多的企业计划使用大数据。为了使用户能够在云端部署大数据应用,大的服务提供商如谷歌、微软、亚马逊等开始在他们的数据中心中部署MapReduce、Dryad、Spark等大数据架构。用户运行的大数据分析业务及应用在数据中心网络中传输并产生大量的流量,据分析大数据中数据传输的时间占到了任务完成总时间的50%以上。
[0003]为了优化大数据的数据传输,许多基于并行任务的调度机制被提出。其中一种机制是通过基于cof low来优化大数据的传输时间。一个cof low是一个大数据任务所产生所有数据流的集合。通过基于coflow的流量均衡,可以有效减少大数据业务的传输时间。但是现有的coflow调度机制过于理想化,没有确定网络中链路是否存在拥塞的机制。

【发明内容】

[0004]本发明实施例的目的在于提供一种大数据业务中基于流调度的链路拥塞确定方法及装置,以确定数据中心网络中的链路是否存在拥塞。
[0005]为达到上述目的,本发明实施例公开了一种大数据业务中基于流调度的链路拥塞确定方法,应用于数据中心网络中的控制节点,所述数据中心网络还包括至少两个任务节占.V ,
[0006]所述方法包括:
[0007]接收每个任务节点发送的、该任务节点向其他任务节点传输的数据流的发送速率;
[0008]针对每一数据流,获得上次确定的所述数据流的分配发送速率;
[0009]针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值;
[0010]根据所述拥塞值,确定所述链路是否存在拥塞。
[0011]可选的,所述根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,所利用的公式为:
[0012]拥塞值=所述数据流发送节点向所述数据流接收节点传输的所有的数据流的上次确定的分配发送速率之和/所述数据流发送节点向所述数据流接收节点传输的所有的数据流的发送速率之和。
[0013]可选的,在确定所述链路存在拥塞的情况下,所述方法还包括:
[0014]根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率;
[0015]将所确定的所述当前分配发送速率发送给所述数据流发送节点,以使所述数据流发送节点根据所述当前分配发送速率,调整向所述数据流接收节点传输的数据流的发送速率。
[0016]可选的,所述根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率,包括:
[0017]根据所述拥塞值,计算每个任务的估计完成时间;
[0018]根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率,其中,所述确定的每个任务对应的数据流的当前分配发送速率包括:所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率。
[0019]可选的,所述根据所述拥塞值,计算每个任务的估计完成时间,包括:
[0020]针对每个任务,获得所述任务的信息,其中,所述信息包括每个任务所包含的数据流以及每一数据流所对应的数据流发送节点和数据流接收节点;
[0021]针对每个任务的每一数据流,获得所述数据流的未发送数据量、数据流发送节点上正在执行的任务数和数据流接收节点上正在执行的任务数;
[0022]根据所述未发送数据量、所述数据流发送节点上正在执行的任务数、所述数据流接收节点上正在执行的任务数、所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,计算所述任务的估计完成时间。
[0023]可选的,所述根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率,包括:
[0024]S21,将估计完成时间值最小的任务作为候选任务;
[0025]S22,针对所述候选任务,获得所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数;
[0026]S23,根据所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数,确定所述候选任务对应的每个数据流的当前分配发送速率;
[0027]S24,判断所述候选任务是否是估计完成时间值最大的任务,如果否,除去已作为候选任务的任务,将剩余任务中估计完成时间值最小的任务作为候选任务,返回S22。
[0028]可选的,所述根据所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数,确定所述候选任务对应的每个数据流的当前分配发送速率,包括:
[0029]针对所述候选任务的每个数据流,根据所述数据流所对应的数据流发送节点的剩余带宽值、所述数据流发送节点发出所述候选任务的数据流个数,计算第一速率值;
[0030]根据所述数据流所对应的数据流接收节点的剩余带宽值、所述数据流接收节点接收所述候选任务的数据流个数,计算第二速率值;[0031 ]判断所述第一速率值是否小于所述第二速率值;
[0032]如果是,将所述第一速率值确定为所述数据流的当前分配发送速率,否则将所述第二速率值确定为所述数据流的当前分配发送速率。
[0033]为达到上述目的,本发明实施例还公开了一种大数据业务中基于流调度的链路拥塞确定装置,应用于数据中心网络中的控制节点,所述数据中心网络还包括至少两个任务节点;
[0034]所述装置包括:
[0035]接收模块,用于接收每个任务节点发送的、该任务节点向其他任务节点传输的数据流的发送速率;
[0036]获得模块,用于针对每一数据流,获得上次确定的所述数据流的分配发送速率;
[0037]计算模块,用于针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值;
[0038]第一确定模块,用于根据所述拥塞值,确定所述链路是否存在拥塞。
[0039]可选的,所述根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,所利用的公式为:
[0040]拥塞值=所述数据流发送节点向所述数据流接收节点传输的所有的数据流的上次确定的分配发送速率之和/所述数据流发送节点向所述数据流接收节点传输的所有的数据流的发送速率之和。
[0041 ]可选的,在确定所述链路存在拥塞的情况下,所述装置还包括:
[0042]第二确定模块,用于根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率;
[0043]发送模块,将所确定的所述当前分配发送速率发送给所述数据流发送节点,以使所述数据流发送节点根据所述当前分配发送速率,调整向所述数据流接收节点传输的数据流的发送速率。
[0044]可选的,所述第二确定模块,包括:
[0045]计算子模块,用于根据所述拥塞值,计算每个任务的估计完成时间;
[0046]确定子模块,用于根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率,其中,所述确定的每个任务对应的数据流的当前分配发送速率包括:所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率。
[0047]可选的,所述计算子模块,包括:
[0048]第一获得单元,用于针对每个任务,获得所述任务的信息,其中,所述信息包括每个任务所包含的数据流以及每一数据流所对应的数据流发送节点和数据流接收节点;
[0049]第二获得单元,用于针对每个任务的每一数据流,获得所述数据流的未发送数据量、数据流发送节点上正在执行的任务数和数据流接收节点上正在执行的任务数;
[0050]计算单元,用于根据所述未发送数据量、所述数据流发送节点上正在执行的任务数、所述数据流接收节点上正在执行的任务数、所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,计算所述任务的估计完成时间。[0051 ]可选的,所述确定子模块,包括:
[0052]第一处理单元,用于将估计完成时间值最小的任务作为候选任务;
[0053]第三获得单元,用于针对所述候选任务,获得所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的所有的数据流个数;
[0054]确定单元,用于根据所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数,确定所述候选任务对应的每个数据流的当前分配发送速率;
[0055]判断单元,用于判断所述候选任务是否是估计完成时间值最大的任务,如果否,除去已作为候选任务的任务,将剩余任务中估计完成时间值最小的任务作为候选任务,触发所述第二获得单兀。
[0056]可选的,所述确定单元,包括:
[0057]第一计算子单元,用于针对所述候选任务的每个数据流,根据所述数据流所对应的数据流发送节点的剩余带宽值、所述数据流发送节点发出所述候选任务的数据流个数,计算第一速率值;
[0058]第二计算子单元,用于根据所述数据流所对应的数据流接收节点的剩余带宽值、所述数据流接收节点接收所述候选任务的数据流个数,计算第二速率值;
[0059]判断子单元,用于判断所述第一速率值是否小于所述第二速率值;
[0060]确定子单元,用于当判断所述第一速率值小于所述第二速率值时,将所述第一速率值确定为所述数据流的当前分配发送速率,否则将所述第二速率值确定为所述数据流的当前分配发送速率。
[0061]综上可知,本发明实施例所提供的一种大数据业务中基于流调度的链路拥塞确定方法及装置,应用于数据中心网络中的控制节点,针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,根据所述拥塞值可以确定所述链路是否发生拥塞。同时,本发明实施例所述的方法及装置只需要通过控制节点和各个任务节点实现,不需要依赖于其他拓扑或者网络设备,也不需要对控制节点和各个任务节点进行修改和配置,可以在云计算数据中心或虚拟化环境中进行部署。
[0062]当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
【附图说明】
[0063]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0064]图1为本发明实施例提供的一种大数据业务中基于流调度的链路拥塞确定方法的流程示意图;
[0065]图2为本发明实施例提供的另一种大数据业务中基于流调度的链路拥塞确定方法的流程示意图;
[0066]图3为本发明实施例提供的一种大数据业务中基于流调度的链路拥塞确定装置的结构示意图;
[0067]图4为本发明实施例提供的另一种大数据业务中基于流调度的链路拥塞确定装置的结构示意图。
【具体实施方式】
[0068]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0069]为了解决现有技术问题,本发明实施例提供了一种大数据业务中基于流调度的链路拥塞确定方法,下面通过具体实施例,对本发明进行详细说明。
[0070]需要说明的是,本发明实施例提供的一种大数据业务中基于流调度的链路拥塞确定方法优选适用于数据中心网络中的控制节点,所述数据中心网络还包括至少两个任务节点。
[0071]图1为本发明实施例提供的一种大数据业务中基于流调度的链路拥塞确定方法的流程示意图,可以包括如下步骤:
[0072]SlOl,接收每个任务节点发送的、该任务节点向其他任务节点传输的数据流的发送速率;
[0073]S102,针对每一数据流,获得上次确定的所述数据流的分配发送速率;
[0074]S103,针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值;
[0075]S104,根据所述拥塞值,确定所述链路是否存在拥塞。
[0076]在实际应用中,数据中心网络中同时执行多个大数据任务(job),每个任务又包含了多个子任务(task),每个子任务在不同的任务节点上执行。本领域技术人员可以理解的是,属于同一任务的两个子任务之间仅有一个数据流从该两个子任务对应的两个任务节点中的数据流发送节点向数据流接收节点传输。然而,数据中心网络中还存在其他的非大数据任务,该非大数据任务产生的数据流称为背景流,这些背景流在传输时会占用数据中心网络中的带宽,从而造成大数据任务中的数据流传输时的拥塞。
[0077]本发明实施例所述的方法中,每个任务节点对当前该任务节点向其他任务节点传输的数据流的发送速率进行采集和汇总,并将汇总后的该任务节点向其他任务节点传输的数据流的发送速率发送给控制节点。需要说明的是,每个任务节点采集数据流的发送速率,可以是每隔一个预设时间段进行采集,也可以是在预设时间点进行采集,本发明实施例不对采集数据流发送速率的时机进行限定。
[0078]控制节点接收到每个任务节点发送的、该任务节点向其他任务节点传输的数据流的发送速率后,对于每一数据流,不难获得上次确定的所述数据流的分配发送速率。根据数据流的发送速率和上次确定的分配发送速率,可以计算包含数据流发送节点和数据流接收节点的任意两个任务节点所构成的链路的拥塞值。具体的,所述拥塞值=所述数据流发送节点向所述数据流接收节点传输的所有的数据流的上次确定的分配发送速率之和/所述数据流发送节点向所述数据流接收节点传输的所有的数据流的发送速率之和。
[0079]当链路无拥塞时,即所述数据流发送节点向所述数据流接收节点传输的所有的数据流的发送速率之和等于所述数据流发送节点向所述数据流接收节点传输的所有的数据流的上次确定的分配发送速率之和,因此所述拥塞值为I;当链路存在拥塞时,所述数据流发送节点向所述数据流接收节点传输的所有的数据流的发送速率之和小于所述数据流发送节点向所述数据流接收节点传输的所有的数据流的上次确定的分配发送速率之和,因此所述拥塞值大于I。因此,可以根据所述拥塞值,确定所述链路是否存在拥塞。
[0080]应用本发明实施例,针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,根据所述拥塞值可以确定所述链路是否发生拥塞。同时,本发明实施例所述的方法只需要通过控制节点和各个任务节点实现,不需要依赖于其他拓扑或者网络设备,也不需要对控制节点和各个任务节点进行修改和配置,可以在云计算数据中心或虚拟化环境中进行部署。
[0081]更进一步的,基于图1所提供的实施例,本发明实施例所提供的一种大数据业务中基于流调度的链路拥塞确定方法还可以包括如下步骤:如图2所示,当在图1所示步骤S104中确定所述链路存在拥塞的情况下,还包括步骤S105和S106,具体为:
[0082]S105,根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率;
[0083]S106,将所确定的所述当前分配发送速率发送给所述数据流发送节点,以使所述数据流发送节点根据所述当前分配发送速率,调整向所述数据流接收节点传输的数据流的发送速率。
[0084]在实际应用中,在确定所述链路存在拥塞的情况下,控制节点需要根据所述拥塞值,计算出每个任务的估计完成时间;根据每个任务的估计完成时间值的大小对依次确定每个任务的所有数据流的当前分配发送速率,根据对应的数据流发送节点剩余带宽值和数据流接收节点的剩余带宽值,优先确定估计完成时间值小的任务的所有数据流的当前分配发送速率;针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据每个任务的每个数据流所对应的数据流发送节点和数据流接收节点,进而可以确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率;将所确定的所述当前分配发送速率发送给所述数据流发送节点,以使所述数据流发送节点根据所述当前分配发送速率,为所述数据流分配对应的带宽,从而调整向所述数据流接收节点传输的数据流的发送速率。
[0085]具体的,上述根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率的步骤,具体可以根据所述拥塞值,计算每个任务的估计完成时间;根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率,其中,所述确定的每个任务对应的数据流的当前分配发送速率包括:所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率。
[0086]具体的,上述根据所述拥塞值,计算每个任务的估计完成时间的步骤,具体可以为:
[0087]针对每个任务,获得所述任务的信息,其中,所述信息包括每个任务所包含的数据流以及每一数据流所对应的数据流发送节点和数据流接收节点;
[0088]针对每个任务的每一数据流,获得所述数据流的未发送数据量、数据流发送节点上正在执行的任务数和数据流接收节点上正在执行的任务数;
[0089]根据所述未发送数据量、所述数据流发送节点上正在执行的任务数、所述数据流接收节点上正在执行的任务数、所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,计算所述任务的估计完成时间。
[0090]在实际应用中,在获得每个任务的每一数据流的未发送数据量data、数据流发送节点S上正在执行的任务数Sshare和数据流接收节点D上正在执行的任务数Dshare后,可以根据以下公式计算每个任务所对应的估计完成时间EstimatedCCT:
[0091 ] EstimatedCCT+= (Sshare-1 )*(2m( sd)-1 )*data,
[0092]EstimatedCCT+=(Dshare-1)*(2m(sd)-1)*data,
[0093]其中,对每个任务而言,EstimatedCCT初始化为0,m(sd)为该任务的每个数据流所对应的数据流发送节点和数据流接收节点所构成的链路的拥塞值。
[0094]由上述公式可知,对每个任务的所有数据流分别按照上述公式计算之后,可以得到该任务的估计完成时间。
[0095]具体的,上述根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率的步骤,具体可以为:
[0096]S21,将估计完成时间值最小的任务作为候选任务;
[0097]S22,针对所述候选任务,获得所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数;
[0098]S23,根据所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数,确定所述候选任务对应的每个数据流的当前分配发送速率;
[0099]S24,判断所述候选任务是否是估计完成时间值最大的任务,如果否,除去已作为候选任务的任务,将剩余任务中估计完成时间值最小的任务作为候选任务,返回S22。
[0100]具体的,上述根据所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数,确定所述候选任务对应的每个数据流的当前分配发送速率,具体可以为:
[0101]针对所述候选任务的每个数据流,根据所述数据流所对应的数据流发送节点的剩余带宽值、所述数据流发送节点发出所述候选任务的数据流个数,计算第一速率值;
[0102]根据所述数据流所对应的数据流接收节点的剩余带宽值、所述数据流接收节点接收所述候选任务的数据流个数,计算第二速率值;
[0103]判断所述第一速率值是否小于所述第二速率值;
[0104]如果是,将所述第一速率值确定为所述数据流的当前分配发送速率,否则将所述第二速率值确定为所述数据流的当前分配发送速率。
[0105]在实际应用中,第一速率值可以为所述数据流所对应的数据流发送节点的剩余带宽值/所述数据流发送节点发出所述候选任务的数据流个数;第二速率值可以为所述数据流所对应的数据流接收节点的剩余带宽值/所述数据流接收节点接收所述候选任务的数据流个数。
[0106]需要说明的是,所述剩余带宽值为:在存在背景流的情况下任务节点能够提供给大数据任务的最大带宽值,减去已经用于确定候选任务对应的数据流的当前分配发送速率的带宽后的带宽值。在确定了所述候选任务的每个数据流的当前分配发送速率之后,需要根据确定的所述候选任务的每个数据流的当前分配发送速率重新确定相应的数据流发送节点和数据流接收节点的剩余带宽值。例如,针对所述候选任务,获得所述候选任务的仅有的一个数据流a所对应的数据流发送节点s的剩余带宽值为50Mbps和数据流接收节点d的剩余带宽值为40Mbps,在确定该任务的数据流a的当前发送速率之后,如果确定的数据流a的当前分配发送速率为20Mbps,那么该数据流发送节点s的剩余带宽值为50Mbps-20Mbps =30Mbps,该数据流接收节点d的剩余带宽值为40Mbps-20Mbps = 20Mbps。
[0107]举例而言,对于包含有4个数据流的任务I和包含有2个数据流的任务2,其中,任务I的数据流I对应的数据流发送节点和数据流接收节点分别为sl、dl,数据流2对应的数据流发送节点和数据流接收节点分别为sl、d2,数据流3对应的数据流发送节点和数据流接收节点分别为s2、d2,数据流4对应的数据流发送节点和数据流接收节点分别为s3、d2,而任务2的数据流I对应的数据流发送节点和数据流接收节点分别为s1、dl,数据流2对应的数据流发送节点和数据流接收节点分别为82、(12,并且任务节点81、82、83、84、(11、(12的剩余带宽值均为100Mbps。假设任务I的估计完成时间小于任务2的估计完成时间,那么首先确定任务I的每个数据流的分配发送速率,具体如下:
[0108]对于数据流I,数据流发送节点SI和数据流接收节点d I的剩余带宽值均为I OOMbps,数据流发送节点s I发出任务I的数据流的个数为2,数据流接收节点d I接收任务I的数据流个数为I,因此计算的第一速率值为50Mbps,第二速率值为100Mbps,从而将第一速率值50Mbps确定为数据流I的当前分配发送速率;
[0109]对于数据流2,数据流发送节点sI和数据流接收节点d 2的剩余带宽值均为I OOMbps,数据流发送节点s I发出任务I的数据流的个数为2,数据流接收节点d2接收任务I的数据流个数为3,因此计算的第一速率值为50Mbps,第二速率值为100/3Mbps,从而将第二速率值100/3Mbps确定为数据流2的当前分配发送速率;
[0110]同样的,对于数据流3和数据流4,按照上述方法可以确定出数据流2和数据流3的当前分配发送速率均为100/3Mbps。
[0111]确定完毕任务I的所有数据流的当前分配发送速率后,需要确定任务2的所有数据流的当前分配发送速率。此时获得任务2的所有数据流所对应的数据流发送节点Si的剩余带宽值为100Mbps-50Mbps-33Mbps = 50/3Mbps、数据流发送节点s2的剩余带宽值为100Mbps-33Mbps = 200/3Mbps、数据流接收节点dl的剩余带宽值为50Mbps、数据流接收节点d2的剩余带宽值为O,从而确定任务2的所有数据流的当前分配发送速率,具体如下:
[0?12]对于数据流I,数据流发送节点s I的剩余带宽值为50/3Mbps,数据流发送节点s I发出任务2的数据流的个数为I,数据流接收节点dl的剩余带宽值为50Mbps,数据流接收节点dl接收任务2的数据流个数为I,因此计算的第一速率值为50/3Mbps,第二速率值为50Mbps,从而将第一速率值50/3Mbps确定为数据流I的当前分配发送速率;
[0?13]对于数据流2,数据流发送节点s2的剩余带宽值为200/3Mbps,数据流接收节点d2的剩余带宽值为0,数据流发送节点s2发出任务2的数据流的个数为I,数据流接收节点d2接收任务2的数据流个数为I,由于计算的第二速率值为0,因此确定数据流2的当前分配发送速率为O。
[0114]本领域技术人员可以理解的是,按照每个任务的估计完成时间确定每个任务的每个数据流的当前分配发送速率,优先对估计完成时间小的任务分配带宽,可以避免使用拥塞链路,进而优化所有任务的平均完成时间,降低拥塞对大数据业务造成的不良影响。
[0115]相应于图1所示的方法实施例,本发明实施例还提供了一种大数据业务中基于流调度的链路拥塞确定装置,应用于数据中心网络中的控制节点,所述数据中心网络还包括至少两个任务节点;
[0116]如图3所示,所述装置可以包括:
[0117]接收模块201,用于接收每个任务节点发送的、该任务节点向其他任务节点传输的数据流的发送速率;
[0118]获得模块202,用于针对每一数据流,获得上次确定的所述数据流的分配发送速率;
[0119]计算模块203,用于针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值;
[0120]第一确定模块204,用于根据所述拥塞值,确定所述链路是否存在拥塞。
[0121]具体的,所述根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,所利用的公式可以为:
[0122]拥塞值=所述数据流发送节点向所述数据流接收节点传输的所有的数据流的上次确定的分配发送速率之和/所述数据流发送节点向所述数据流接收节点传输的所有的数据流的发送速率之和。
[0123]应用本发明实施例,针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,根据所述拥塞值可以确定所述链路是否发生拥塞。同时,本发明实施例所述的确定装置只需要通过控制节点和各个任务节点实现,不需要依赖于其他拓扑或者网络设备,也不需要对控制节点和各个任务节点进行修改和配置,可以在云计算数据中心或虚拟化环境中进行部署。
[0124]相应于图2所示的方法实施例,本发明实施例还提供一种大数据业务中基于流调度的链路拥塞确定装置,在图3所示实施例的基础上,在确定所述链路存在拥塞的情况下,如图4所示,所述装置还可以包括:
[0125]第二确定模块205,用于根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率;
[0126]发送模块206,将所确定的所述当前分配发送速率发送给所述数据流发送节点,以使所述数据流发送节点根据所述当前分配发送速率,调整向所述数据流接收节点传输的数据流的发送速率。
[0127]具体的,所述第二确定模块205,可以包括:
[0128]计算子模块,用于根据所述拥塞值,计算每个任务的估计完成时间;
[0129]确定子模块,用于根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率,其中,所述确定的每个任务对应的数据流的当前分配发送速率包括:所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率。
[0130]具体的,所述计算子模块,可以包括:
[0131]第一获得单元,用于针对每个任务,获得所述任务的信息,其中,所述信息包括每个任务所包含的数据流以及每一数据流所对应的数据流发送节点和数据流接收节点;
[0132]第二获得单元,用于针对每个任务的每一数据流,获得所述数据流的未发送数据量、数据流发送节点上正在执行的任务数和数据流接收节点上正在执行的任务数;
[0133]计算单元,用于根据所述未发送数据量、所述数据流发送节点上正在执行的任务数、所述数据流接收节点上正在执行的任务数、所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,计算所述任务的估计完成时间。
[0134]具体的,所述确定子模块,可以包括:
[0135]第一处理单元,用于将估计完成时间值最小的任务作为候选任务;
[0136]第三获得单元,用于针对所述候选任务,获得所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数;
[0137]确定单元,用于所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数,确定所述候选任务对应的每个数据流的当前分配发送速率;
[0138]判断单元,用于判断所述候选任务是否是估计完成时间值最大的任务,如果否,除去已作为候选任务的任务,将剩余任务中估计完成时间值最小的任务作为候选任务,触发所述第二获得单兀。
[0139]具体的,所述确定单元,可以包括:
[0140]第一计算子单元,用于针对所述候选任务的每个数据流,根据所述数据流所对应的数据流发送节点的剩余带宽值、所述数据流发送节点发出所述候选任务的数据流个数,计算第一速率值;
[0141 ]第二计算子单元,用于根据所述数据流所对应的数据流接收节点的剩余带宽值、所述候选任务在所述数据流接收节点接收的数据流个数,计算第二速率值;
[0142]判断子单元,用于判断所述第一速率值是否小于所述第二速率值;
[0143]确定子单元,用于当判断所述第一速率值小于所述第二速率值时,将所述第一速率值确定为所述数据流的当前分配发送速率,否则将所述第二速率值确定为所述数据流的当前分配发送速率。
[0144]应用本发明实施例,按照每个任务的估计完成时间确定每个任务的每个数据流的当前分配发送速率,优先对估计完成时间小的任务分配带宽,可以避免使用拥塞链路,进而优化所有任务的平均完成时间,降低拥塞对大数据业务造成的不良影响。
[0145]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0146]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0147]本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:R0M/RAM、磁碟、光盘等。
[0148]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种大数据业务中基于流调度的链路拥塞确定方法,其特征在于,应用于数据中心网络中的控制节点,所述数据中心网络还包括至少两个任务节点; 所述方法包括: 接收每个任务节点发送的、该任务节点向其他任务节点传输的数据流的发送速率; 针对每一数据流,获得上次确定的所述数据流的分配发送速率; 针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值; 根据所述拥塞值,确定所述链路是否存在拥塞。2.根据权利要求1所述的方法,其特征在于,所述根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,所利用的公式为: 拥塞值=所述数据流发送节点向所述数据流接收节点传输的所有的数据流的上次确定的分配发送速率之和/所述数据流发送节点向所述数据流接收节点传输的所有的数据流的发送速率之和。3.根据权利要求1所述的方法,其特征在于,在确定所述链路存在拥塞的情况下,所述方法还包括: 根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率; 将所确定的所述当前分配发送速率发送给所述数据流发送节点,以使所述数据流发送节点根据所述当前分配发送速率,调整向所述数据流接收节点传输的数据流的发送速率。4.根据权利要求3所述的方法,其特征在于,所述根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率,包括: 根据所述拥塞值,计算每个任务的估计完成时间; 根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率,其中,所述确定的每个任务对应的数据流的当前分配发送速率包括:所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率。5.根据权利要求4所述的方法,其特征在于,所述根据所述拥塞值,计算每个任务的估计完成时间,包括: 针对每个任务,获得所述任务的信息,其中,所述信息包括每个任务所包含的数据流以及每一数据流所对应的数据流发送节点和数据流接收节点; 针对每个任务的每一数据流,获得所述数据流的未发送数据量、数据流发送节点上正在执行的任务数和数据流接收节点上正在执行的任务数; 根据所述未发送数据量、所述数据流发送节点上正在执行的任务数、所述数据流接收节点上正在执行的任务数、所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值,计算所述任务的估计完成时间。6.根据权利要求4所述的方法,其特征在于,所述根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率,包括: S21,将估计完成时间值最小的任务作为候选任务; S22,针对所述候选任务,获得所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数; S23,根据所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数,确定所述候选任务对应的每个数据流的当前分配发送速率; S24,判断所述候选任务是否是估计完成时间值最大的任务,如果否,除去已作为候选任务的任务,将剩余任务中估计完成时间值最小的任务作为候选任务,返回S22。7.根据权利要求6所述的方法,其特征在于,所述根据所述候选任务的所有数据流所对应的数据流发送节点的剩余带宽值和数据流接收节点的剩余带宽值,以及所述数据流发送节点发出所述候选任务的数据流个数和所述数据流接收节点接收所述候选任务的数据流个数,确定所述候选任务对应的每个数据流的当前分配发送速率,包括: 针对所述候选任务的每个数据流,根据所述数据流所对应的数据流发送节点的剩余带宽值、所述数据流发送节点发出所述候选任务的数据流个数,计算第一速率值; 根据所述数据流所对应的数据流接收节点的剩余带宽值、所述数据流接收节点接收所述候选任务的数据流个数,计算第二速率值; 判断所述第一速率值是否小于所述第二速率值; 如果是,将所述第一速率值确定为所述数据流的当前分配发送速率,否则将所述第二速率值确定为所述数据流的当前分配发送速率。8.—种大数据业务中基于流调度的链路拥塞确定装置,其特征在于,应用于数据中心网络中的控制节点,所述数据中心网络还包括至少两个任务节点; 所述装置包括: 接收模块,用于接收每个任务节点发送的、该任务节点向其他任务节点传输的数据流的发送速率; 获得模块,用于针对每一数据流,获得上次确定的所述数据流的分配发送速率; 计算模块,用于针对包含数据流发送节点和数据流接收节点的任意两个任务节点,根据所述数据流发送节点向所述数据流接收节点传输的数据流的发送速率和分配发送速率,计算所述数据流发送节点到所述数据流接收节点之间的链路的拥塞值; 第一确定模块,用于根据所述拥塞值,确定所述链路是否存在拥塞。9.根据权利要求8所述的装置,其特征在于,在确定所述链路存在拥塞的情况下,所述装置还包括: 第二确定模块,用于根据所述拥塞值,确定所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率; 发送模块,将所确定的所述当前分配发送速率发送给所述数据流发送节点,以使所述数据流发送节点根据所述当前分配发送速率,调整向所述数据流接收节点传输的数据流的发送速率。10.根据权利要求9所述的装置,其特征在于,所述第二确定模块,包括: 计算子模块,用于根据所述拥塞值,计算每个任务的估计完成时间; 确定子模块,用于根据每个任务的估计完成时间,确定每个任务对应的数据流的当前分配发送速率,其中,所述确定的每个任务对应的数据流的当前分配发送速率包括:所述数据流发送节点向所述数据流接收节点传输的每个数据流的当前分配发送速率。
【文档编号】H04L12/801GK105871738SQ201610289714
【公开日】2016年8月17日
【申请日】2016年5月4日
【发明人】黄韬, 张娇, 汪硕, 刘江, 潘恬, 杨帆, 刘韵洁
【申请人】北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1