一种网络更新方法及装置与流程

文档序号:11437029阅读:271来源:国知局
一种网络更新方法及装置与流程

本发明涉及通信工程领域,特别是指一种网络更新方法及装置。



背景技术:

由于网络操作者,应用程序,网络设备触发的网络更新事件,网络状况在不断地改变。这些更新事件包括交换机升级,网络失效,VM(虚拟机)迁移等等。当升级一个交换机的时候,为了确保网络应用程序的正常运行,通过这个交换机的所有流都应该被迁移到网络的其他路径上去。对于VM迁移来讲,由于虚拟机迁移到网络中其他的服务器上,对应的所有流量都需要被迁移,因此产生了一组需要被迁移的新流。这一类的网络更新事件产生了两种后果:网络拓扑的改变和流量矩阵的改变。从网络的观点来看,这些更新事件一个共同的原因就是网络的不稳定性。因此,每一个更新事件都应该提前制定有效的更新计划。

对于一个初始网络配置下的网络更新事件,更新计划通常需要提前订制,它来源于期望的目的网络状态,包括最终的网络拓扑和流量矩阵。然而,更新过程通常会经历多个中间网络状态,也许会经历严重的网络拥塞和其他有挑战的事情。正是由于这个原因,之前的更新计划依赖于实现一个正确的转换从初始网络状态到最终的网络状态。这些工作可以分为两类:一是一致性的更新,也就是说,通过网络的一个数据包或流仅遵守一个新的或旧的网络配置;二是无拥塞的更新,它提前为每一个更新事件做一个更新计划。

一个更新事件典型的涉及到一组新流或现有的流,如果这些流的执行没有结束,那么这个更新事件也是没有完成的。然而,以前的更新方法孤立的处理这些流,而不是一个将其作为一个更新事件的整体。这些优化流层面的方法并不适用于优化事件层面的指标,包括单个更新事件完成时间,所有更新事件的完成时间及平均完成时间。事实上,每流更新的抽象并不能捕获到事件层面需求,更不要提一组更新事件之间需求。也就是说,以前的更新方法并没有提供一个架构来展示事件层面的更新语义而且导致了很多后果。例如,由于网络资源被其他更新事件的大流占用,目前需要更新的事件缺少网络资源,那么它的部分流可能被阻塞。这将会导致所有事件的完成时间和平均完成时间被延长。

在共享的网络中,网络操作者,应用程序和网络设备产生了多个更新事件。这些更新事件在流的数目,流的大小,事件大小方面有很大区别。简单的调度机制,如FIFO(先入先出机制),并不能应对这个问题。这经常导致Head-of-Line Blocking(线头阻塞)问题。也就是说,队列首部的事件可能会很大,会长时间的占用很多的网络资源。因此,很多比较小的排在队列后面的事件由于长时间的等待,事件完成时间将会变慢。同样,这也会导致整个队列里面的所有更新事件的完成时间和平均完成时间降低。

本发明实施例可以简单的优先更新更新代价小的事件以减小事件的完成时间和平均完成时间,但是它影响了排队事件固有的公平性。针对现有技术中更新排队事件无法兼顾执行效率与公平性的问题,目前尚未有有效的解决方案。



技术实现要素:

有鉴于此,本发明实施例的目的在于提出一种网络更新方法及装置,能够兼顾执行效率与公平性地更新排队事件。

基于上述目的本发明实施例提供的网络更新方法,包括:

持续获取更新事件,并将所有未处理的更新事件按照到达时间由小到大建立未处理更新事件队列;

从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件,并计算所有被指定更新事件的更新代价;

根据所有被指定更新事件各自的更新代价确定下一个被处理的更新事件。

在一些可选实施方式中,计算所有被指定更新事件的更新代价包括:

将更新事件分割为多组不可分割的流;

分别确定更新事件中每组流被网络传输时产生的背景流量迁移集合;

根据更新事件中每组流被网络传输时产生的背景流量迁移集合,获得更新事件的更新代价。

在一些可选实施方式中,分别确定更新事件中每组流被网络传输时产生的背景流量迁移集合包括:

确定网络中每条链路均无拥塞;

根据每组流的路径确定该组流导致拥塞的链路集合;

根据每组流导致拥塞的链路集合确定该组流导致拥塞链路的背景流量;

根据每组流导致拥塞的链路集合与该组流导致拥塞链路的背景流量,确定该组流被网络传输时产生的背景流量迁移集合。

在一些可选实施方式中,确定网络中每条链路均无拥塞包括:

根据每组流的带宽需求与该组流在其路径的每条链路上所占用的带宽,确定每组流均不可分割;

根据每组流的带宽需求与该组流在其路径之外的每条链路上所占用的带宽,确定每组流均具有一个确定的路径;

根据网络中每条链路的剩余带宽,确定网络中每条链路均无拥塞。

在一些可选实施方式中,根据每组流导致拥塞的链路集合与该组流导致拥塞链路的背景流量,确定该组流被网络传输时产生的背景流量迁移集合时,该组流被网络传输时产生的背景流量迁移集合中任一组流的迁移不引起网络中其他链路的拥塞。

在一些可选实施方式中,根据更新事件中每组流被网络传输时产生的背景流量迁移集合,获得更新事件的更新代价,为根据更新事件中每组流被网络传输时产生的背景流量迁移集合,获得更新事件的中每组流被网络传输时产生的背景流量迁移集合之和的最小值。

在一些可选实施方式中,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件包括:

获取所述预先设定的指定数量;

当未处理更新事件队列中更新事件总数量大于所述指定数量加一时,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件;

当未处理更新事件队列中更新事件总数量小于等于所述指定数量加一时,从未处理更新事件队列中随机选取一件非队列第一更新事件与队列第一更新事件。

在一些可选实施方式中,根据所有被指定更新事件各自的更新代价确定下一个被处理的更新事件,为选取所有被指定更新事件中更新代价最小的更新事件确定为下一个被处理的更新事件。

在一些可选实施方式中,其特征在于,确定下一个被处理的更新事件之后,判断其他被指定更新事件是否能按照其在未处理更新事件队列中的位置顺序与下一个被处理的更新事件同时更新。

从上面所述可以看出,本发明实施例提供的网络更新方法及装置,通过持续获取更新事件,并将所有未处理的更新事件按照到达时间由小到大建立未处理更新事件队列,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件,并计算所有被指定更新事件的更新代价,根据所有被指定更新事件各自的更新代价确定下一个被处理的更新事件的技术手段,兼顾执行效率与公平性地更新排队事件。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中基于Yahoo!数据中心的流量特征的一个更新事件的一条流加入k=8Fat-Tree数据中心网络的成功率折线示意图;

图2为现有技术中基于随机产生背景流量的流量特征的一个更新事件的一条流加入k=8Fat-Tree数据中心网络的成功率折线示意图;

图3为三个更新事件引起的一系列流的调度顺序对比示意图;

图4为本发明提供的网络更新方法的流程示意图;

图5为根据现有技术中的FIFO的方法更新三个更新事件的调度顺序示意图;

图6为本发明提供的网络更新装置中的LMTF方法更新三个更新事件的调度顺序示意图;

图7为本发明提供的执行所述网络更新方法的装置的一个实施例的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

一个更新事件通常涉及到新流的集合或现有流的集合。这个集合的每一条流都需要竞争所在路径上的网络资源。然而,所在路径的剩余带宽可能并不能为新流提供充足的网络资源。在这个场景中,一旦新流加入网络,需求路径上将会出现拥塞,特别是当网络链路利用率很高的情况下。图1与图2示出的是一个更新事件的一条流加入k=8Fat-Tree数据中心网络的成功率。在Yahoo!数据中心的流量特征与随机产生的背景流量的情境下,实验结果可以看出随着链路利用率的增加,无论流的大小是多少,成功率都在减小。

由于上述原因,当对更新事件涉及的流进行更新时,本发明实施例有必要首先查看需求路径上的链路是否能提供充足的带宽资源给新流。如果不行,那么本发明实施例就需要重新考量此更新事件。一个基本的方法是给网络中的流分配优先级。如果这些低优先级的已存在的流占用了高优先级流的路径,这些低优先级的流将会被迁移。由于流的大量重传,这个规则将会产生大量流量迁移。更糟糕的是,本发明实施例应该迁移哪些已存在的流去满足一个更新事件的某一个新流的更新是一个已经被证明的NP-hard问题。

另一个方法是重新路由网络中所有的流来提供充足的网络资源给更新时间涉及到的新流。当网络拓扑或流量矩阵改变时,这个规则致力于实现更好的网络性能,例如负载均衡,更高的链路利用率。这将消耗大量的时间来接一系列的线性规划问题。由于网络所有流的全局重新路由,从而导致严重的全网规模的流迁移。

尽管考虑了这么多,网络更新问题仍然缺乏有效的解决方案。在这篇文章中,对于一个包含一组新流的网络更新事件,本发明实施例提出一个策略,本地的调度需求路径上,拥塞链路段上的背景流。对于一个更新事件中的一条流,本发明实施例首先检测是否存在一条可行的路径,它的剩余链路资源足以满足新流对网络资源的需求。如果不存在这样一条路径,本发明实施例本地的调整拥塞链路上的背景流量到其他可行的路径上去,以满足新流对网络资源的需求。迁移的背景流量越多,消耗的时间也越多,对应用程序造成的影响也会越大。本发明实施例期望找到一个本地的路由方案来最小化迁移的背景流量,同时其释放的网络资源正好可以满足更新事件包含的新流对网络带宽的需求。

上述方法优化了流层面的指标,例如成功率和更新速度。然而,这些方法并不能优化事件层面的指标,例如事件完成时间,事件平均完成时间。这些指标对于网络更新来说是最主要的目标。如图3所示,考虑由三个更新事件引起的一系列流。本发明实施例可以独立地调度每一条流。另一个方法是将一个事件产生的流看作一个整体,然后按照确定的顺序调度。按照事件层面的调度方法,这三个更新事件的平均完成时间是(3+7+12)/3=22/3,低于流层面的调度方法所用的时间(9+11+12)/3=32/3。对于这三个事件的总完成时间,两种方法的结果是一样的。这是因为本发明实施例假设所有流的持续时间是一样的。事实上,真实的网络中,流的持续时间并不相同。因此,三个事件的完成时间也同样会改变。

基于上述目的,本发明实施例的第一个方面,提出了一种能够针对不同用户或不同类型的用户进行数据推荐的网络更新方法的第一个实施例。如图4所示,为本发明提供的网络更新方法的第一个实施例的流程示意图。

所述网络更新方法,可选的,应用于服务器,包括:

步骤S101,持续获取更新事件,并将所有未处理的更新事件按照到达时间由小到大建立未处理更新事件队列;

步骤S103,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件,并计算所有被指定更新事件的更新代价;

步骤S105,根据所有被指定更新事件各自的更新代价确定下一个被处理的更新事件。

在一些可选实施方式中,计算所有被指定更新事件的更新代价包括:

将更新事件分割为多组不可分割的流;

分别确定更新事件中每组流被网络传输时产生的背景流量迁移集合;

根据更新事件中每组流被网络传输时产生的背景流量迁移集合,获得更新事件的更新代价。

在一些可选实施方式中,分别确定更新事件中每组流被网络传输时产生的背景流量迁移集合包括:

确定网络中每条链路均无拥塞;

根据每组流的路径确定该组流导致拥塞的链路集合;

根据每组流导致拥塞的链路集合确定该组流导致拥塞链路的背景流量;

根据每组流导致拥塞的链路集合与该组流导致拥塞链路的背景流量,确定该组流被网络传输时产生的背景流量迁移集合。

在一些可选实施方式中,确定网络中每条链路均无拥塞包括:

根据每组流的带宽需求与该组流在其路径的每条链路上所占用的带宽,确定每组流均不可分割;

根据每组流的带宽需求与该组流在其路径之外的每条链路上所占用的带宽,确定每组流均具有一个确定的路径;

根据网络中每条链路的剩余带宽,确定网络中每条链路均无拥塞。

在一些可选实施方式中,根据每组流导致拥塞的链路集合与该组流导致拥塞链路的背景流量,确定该组流被网络传输时产生的背景流量迁移集合时,该组流被网络传输时产生的背景流量迁移集合中任一组流的迁移不引起网络中其他链路的拥塞。

在一些可选实施方式中,根据更新事件中每组流被网络传输时产生的背景流量迁移集合,获得更新事件的更新代价,为根据更新事件中每组流被网络传输时产生的背景流量迁移集合,获得更新事件的中每组流被网络传输时产生的背景流量迁移集合之和的最小值。

在一些可选实施方式中,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件包括:

获取所述预先设定的指定数量;

当未处理更新事件队列中更新事件总数量大于所述指定数量加一时,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件;

当未处理更新事件队列中更新事件总数量小于等于所述指定数量加一时,从未处理更新事件队列中随机选取一件非队列第一更新事件与队列第一更新事件。

在一些可选实施方式中,根据所有被指定更新事件各自的更新代价确定下一个被处理的更新事件,为选取所有被指定更新事件中更新代价最小的更新事件确定为下一个被处理的更新事件。

在一些可选实施方式中,其特征在于,确定下一个被处理的更新事件之后,判断其他被指定更新事件是否能按照其在未处理更新事件队列中的位置顺序与下一个被处理的更新事件同时更新。

综上所述,借助于本发明实施例的上述技术方案,通过持续获取更新事件,并将所有未处理的更新事件按照到达时间由小到大建立未处理更新事件队列,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件,并计算所有被指定更新事件的更新代价,根据所有被指定更新事件各自的更新代价确定下一个被处理的更新事件的技术手段,兼顾执行效率与公平性地更新排队事件。

本发明实施例还提出了一种能够针对不同用户或不同类型的用户进行数据推荐的网络更新方法的第二个实施例。

所述网络更新方法,可选的,应用于服务器,包括:

步骤S101,持续获取更新事件,并将所有未处理的更新事件按照到达时间由小到大建立未处理更新事件队列。

步骤S103,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件,并计算所有被指定更新事件的更新代价。

网络定义为一个图G=(V,E)。V和E分别代表一组交换机和一组连接这些交换机的链路。ci,j代表链路ei,j∈E的剩余带宽,D代表网络直径,F代表网络所有的流。对于任意一个流f∈F,它的带宽需求是df。流f被路由到可行的路径集合P(f)中的一条路径p上。对于路径p上的每一条链路ei,j,代表流f在链路ei,j上占用的带宽。如果下面的条件满足,本发明实施例就说网络是无拥塞的。

上面的限制条件确保每一条流f∈F是不可分割的、被转发到一个确定的路径p上、当网络容纳了更新事件里面的所有流F之后网络中的每一条链路仍是无拥塞的。

考虑一条要加入包含流集合F的网络的一条新流fa。当流fa要通过一条路径p∈P(fa),它可能会在一些链路上产生拥塞。本发明实施例将由流fa导致的拥塞链路的集合定义为即:

然后,本发明实施例定义了经过这些拥塞链路的背景流量:

到目前为止,为了迁移流fa,本发明实施例尽力去找出FA的一个子集Fa。因此,如果集合FA中的所有流都被迁走了,流fa就可以被网络传输。也就是说:

本发明实施例将更新事件U抽象成一组相关的流,表示为U={f1,f2,…,fw}。对于任一条流fa∈U,它将导致集合Fa中已有流的迁移。这些集合里面迁移的流的流量和定义为一个更新事件U的更新代价,即:

其中,sum(Fa)代表因为加入新流fa而产生的迁移的背景流量的和。

考虑网络应用程序上流量迁移带来的消极影响。在这篇文章中,本发明实施例意在减小由于一个包含W条流的更新事件U引起的流量迁移。为了解决这个问题,本发明实施例需要找到FA的一个最小子集Fa。如果集合Fa中的所有流都被迁移到别的可行路径上,则流fa可以在网络中传输。因此,拥塞链路上的剩余链路带宽和迁移流量之和应该大于新流fa的需求带宽,正如(1)表示的那样。

任意一个包含w条流的更新事件U的更新代价优化问题可以被组织称下面的形式:

另外,集合Fa里面任一流的迁移不回引起其他路径上的拥塞,即:

步骤S105,根据所有被指定更新事件各自的更新代价确定下一个被处理的更新事件。

对任意一个流fa∈U,计算一个集合Fa是一个NP-complete问题。因此,本发明实施例设计了一个贪婪的策略来降低需要迁移的背景流量。

调度顺序决定了多个更新事件在一定限制条件下的执行顺序。然而,确定调度顺序来减小事件平均完成时间很难,更不要说还要满足多个设计条件。事实上,为多个事件中的流分配带宽需要满足很多而且经常冲突的限制条件。因此,本发明实施例选取了多个准则来解决多个事件的调度问题。

一个更新事件将会导致一些背景流量迁移到网络其他路径上去,以便释放资源给更新事件包含的流。迁移过多的流量将会给网络造成潜在的,难以估计的影响。甚至,重新路由现有流量将会消耗大量的时间,可能会因此延迟一个更新事件的执行。所以,一个更新事件产生的流迁移应该被减少。

一个网络中存在有不同原因导致的各种更新事件。他们在流的数目,流的大小,事件总大小方面都不同。一个负载较大的更新事件将会消耗更多的网络资源,造成很高的更新代价。对一组异步更新事件,为了提高整个队列里的事件的整体更新速度本发明实施例面临重大的挑战。

本发明实施例事件层面的抽象对于减小一个更新事件的完成时间很有效。当本发明实施例需要同时处理多个更新事件时,平均和总的事件完成时间是事件层面两个重要的指标。在这个设置里,一个很早到达队列的大负载的事件,如果按照到达的顺序被调度,它会持续很长时间,持久的占用网络资源,从而阻塞了其他到达较晚的校服在的更新事件。这种延迟将会导致队列中所有更新事件的平均完成时间和总的完成时间增加。

对于一个更新事件队列,除了考虑像事件的平均完成时间这样的效率指标之外,本发明实施例还应该考虑公平性。然而,同时保证公平性和效率是一个很挑战的问题。为了确保公平性,到达较早的更新事件应该比到达晚的事件有限执行。然而,如果队列中所有的事件都严格地按照到达的顺序来执行,到达较早的,负载较重的事件将会阻塞后面到来的小负载事件。这将会严重影响调度效率。因此,本发明实施例通过微调更新事件的执行顺序来提高更新的效率,同时,提供更多的机会给答复在事件期望它能和队列头部的事件同时执行。

本发明实施例更倾向于基于到达时间的顺序来执行更新事件,同时动态调整的执行序列,应对head-of-line阻塞问题。考虑n个更新事件U1,U2,…Un.本发明实施例随机选择两个更新事件Ub和Uc,其中分别包含v和w条流。为了在网络中中更新事件Ub和Uc中的流fb和fc,本发明实施例让Fb和Fc分别表示需要迁移的现有的流的集合。然后,本发明实施例计算这两个更新事件的更新代价:

最后,为了在一定程度上保证公平性,本发明实施例比较队列的头事件和随机挑选的两个更新事件的更新代价,然后执行里面更新代价最小的事件。

上面的调度模型在稍微放松对公平性的要求下,减少了事件完成时间和平均完成时间。为了提高公平水平,本发明实施例上述模型的基础上提出机会更新模型。基本的想法是根据上述模型找到下一轮将要被执行的放在队列首部的更新事件,同时更新队列后面可以与队列首部事件同时更新的事件。这样的话,一个队列前面的大负载事件,在之前的模型中由于过大的更新代价而被推迟,在机会更新的模型中,这种被推迟的大负载事件将会有机会按照到达的顺序及时执行。该模型进一步增加调度效率,也在一定程度上提高了公平性。

对任意更新事件,下面的两个问题决定了事件完成时间。首先,如果一个更新事件包含的新流期望的传输路径上的剩余资源不足以传输新流,本发明实施例是否要将此路径上原有的背景流量迁走。如果需要迁移一部分背景流量,这些流量应该被迁移到哪些路径上去,以确保每条流都有充足的网络资源可用。其次,为了使更新事件里面的流可以有充足的网络资源,哪一部分背景流量应该被迁移。这个问题已经被证明是一个NP-hard问题。因此,本发明实施例设计了一个近似算法来决定最小的迁移流量。通过迁移这些流,更新事件包含的流将会有充足的网络资源在网络中传输。

在重路由的过程中,一个更新事件所引起的迁移的任意一条流都与网络中其他的流量竞争网络资源,例如链路带宽和交换机上的稀有资源。这个行为进一步影响了网络控制多个更新事件的能力。甚至,迁移现有的流量将会消耗大量的时间,因此会降低更新事件的完成时间。所以,很有必要去降低更新事件的更新代价,即,迁移的背景流量,以便于本发明实施例进一步降低每一个事件的更新时间。对于一组更新事件,由于网络配置的动态性,排队的更新事件的代价将会变化。这给本发明实施例优化调度多个更新事件带来了更多的挑战。

算法一解释了本发明实施例的更新代价优化方法,即,减小因为一个更新事件所引起的流量迁移。输入为任一个更新事件Ua和一个变量δ。对于一个更新事件的每一条流fa,本发明实施例首先查看网络中是否有一条路径有足够的网络资源来传输这条流。如果不存在这样的一条路径,那么,本发明实施例收集拥塞链路上的背景流量组成一个候选集集合FA。本发明实施例尽力从这个候选集和里面挑出一个最小的子集Fa。通过迁移这个子集里面的流,更新事件的网络资源需求将会得到满足。同时,集合Fa里面的每一条流都可以被迁移到其他的路径上而不会产生拥塞。

上述优化方法可以有效地减少一个更新事件的完成时间。当更新事件按照到达的先后顺序组成一个队列时,它尚不清楚如何调度这些更新事件。调度顺序不但决定了平均事件完成时间和总的事件完成时间这两个效率的指标,而且决定更新事件之间的公平性。在这种环境下,FIFO由于其简单实现和严格的公平性,受到了很多人的喜爱。如果这种更新事件的持续时间非常相似,FIFO被证明是最优的方法来减小事件的完成时间,实现严格公平。如果事件的持续时间呈长尾分布,由一些重负载的事件排在队列的前面,FIFO方法经常引起head-of-blocking问题。从而增加了事件总的完成时间和平均完成时间。在这个场景中,由于需要严格的保证公平性,FIFO不能高效的完成更新事件。对于有多个更新事件组成的更新队列,本发明实施例稍微放松的公平性要求以期待降低事件的平均完成时间和总的完成时间。

一种内在的方法是根据更新代价来对队列里的事件进行重新排队,首先选择更新代价最低的事件执行。图5与图6给出了调度三个更新事件的一个例子。这些更新事件的执行时间都是1秒。事件U1的更新代价是4s,事件U2和U3的代价都是1秒。这样,如图5所示,按照FIFO的方法,这些更新事件的平均完成时间是(5+7+9)/3=7秒,事件完成时间都是9秒。如果本发明实施例根据更新代价调整更新事件的执行顺序,如图6所示,平均事件完成时间减少到(2+4+9)/3=5秒,事件完成时间保持不变。从理论上讲,对所有更新事件的重新排序可能解决head-of-line阻塞问题,从而避免了低更新代价的事件的长时间等待问题。正如在第四节所讨论的,这个方法需要大量的计算和时间开销,也会失去公平性,并且会导致其他方面的问题。

本发明实施例提出LMTF,一个简单但是有效的调度方法。它首先调度这些更新事件按照到达的顺序,然后动态的调整更新的顺序,通过对比队列首部事件的更新代价和队列中任意几个事件的更新代价的大小,从而选择更新代价更小的事件首先执行。从而避免head-of-line阻塞问题。基本思想是从队列里面随机挑选α≥1个更新事件,选择更新代价最小的事件。同时,为了在一定程度上保证公平性,本发明实施例将它与队列头部事件的更新事件进行比较。最终,在这α+1个事件中选择更新代价最小的事件执行。如果最终的队列头部事件仍然被选中,那么在这一次的更新中,FIFO的严格公平性也就得到了满足。否则,这个头部事件就是一个重负载的事件,它将会阻塞后面负载较小的事件。

算法二详细叙述了本发明实施例的LMTF方法。注意当队列中的更新事件数目不足α+1个时,本发明实施例不允许采样α个事件。评价结果表明本发明实施例的LMTF方法,对于任一个更新事件的队列,都可以有效的降低事件的平均完成时间和总的完成时间,即使本发明实施例仅仅采样在队列里随机采样2个更新事件来挑选更新代价较低的事件。

注意到本发明实施例的LMTF方法在稍微放松公平性的前提下,有效的提高了调度的效率。也就是说,对队列中某些更新事件执行顺序的调整,将会使到达队列较早的大负载的事件延迟一段时间才能被调度。因此,还有很大的空间可以提高调度的公平性,同时减小队列中任意事件的平均完成时间和总的完成时间。为了这个目的,本发明实施例在微调更新事件执行顺序的基础上提出机会更新。

简单方法FIFO的通用特点,和本发明实施例的微调更新事件顺序的方法都是顺序的更新。也就是说,网络一次仅执行一个更新事件,这个事件是队列目前头部事件或者是从后面选择的更新代价小的事件。相反地,本发明实施例关注于识别队列中的那些可以和队列的头部事件同时更新的事件。

为了这个目的,本发明实施例提出机会更新的方法,一个比微调事件调度顺序更通用的方法。基本的想法是通过微调事件调度顺序的方法找到队列首部待更新的事件,然后寻找更新事件队列中是否存在和队列首部的事件同时执行的事件。一个最先到达的负载较大的事件在微调事件顺序的方法中将会在后面的几轮更新中被调度。然而,在机会更新的方法中,这个大负载事件将会被检测是否可以和待更新的事件一起被更新。采用这样的方法,由于更新的并行性,更新效率可以被有效地提高。公平性也在一定程度上得到了提高。

本发明实施例提出一个启发式的算法P-LMTF来实现上述设计。第一步,按照和LMTF同样的方法,本发明实施例建立一个候选集和,包含初始的队列首部事件和其他的α个在更新事件队列里随机挑选的事件。候选集中更新代价最小的事件将会被选为队列的新头部事件,等待执行。第二步,本发明实施例检测候选集中其他的α个更新事件是否可以按照他们到达的顺序和新的头事件一起被更新。也就是说,第二步提供了更多的机会给到达队列较早的事件,因此有效的提高了公平性。

算法三提供有关于如何实现多个更新事件无拥塞更新的机会调度的具体细节。注意P-LMTF并没有检测整个队列里面的所有事件,来搜索那些能和队列头部事件一起更新的事件。原因是对整个更新队列的检测会导致巨大的计算和时间开销,特别是在大规模的网络中。此外,网络中肯定存在多个可以被同时更新事件。实验结果表明,算法三中任取α个更新事件有效的实现了机会更新的优势,即使当α取2时。

综上所述,借助于本发明实施例的上述技术方案,通过持续获取更新事件,并将所有未处理的更新事件按照到达时间由小到大建立未处理更新事件队列,从未处理更新事件队列中随机选取指定数量的非队列第一更新事件与队列第一更新事件,并计算所有被指定更新事件的更新代价,根据所有被指定更新事件各自的更新代价确定下一个被处理的更新事件的技术手段,兼顾执行效率与公平性地更新排队事件。

需要特别指出的是,上述网络更新方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于网络更新方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

基于上述目的,本发明实施例的第二个方面,提出了一种执行所述网络更新方法的装置的一个实施例。如图7所示,为本发明提供的执行所述网络更新方法的装置的一个实施例的硬件结构示意图。

如图7所示,所述装置包括:

一个或多个处理器901以及存储器902,图7中以一个处理器901为例。

所述执行所述网络更新方法的装置还可以包括:输入装置903和输出装置904。

处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图7中以通过总线连接为例。

存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的所述网络更新方法对应的程序指令/模块。处理器901通过运行存储在存储器1002中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的网络更新方法。

存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据网络更新装置的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至会员用户行为监控装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置903可接收输入的数字或字符信息,以及产生与网络更新装置的用户设置以及功能控制有关的键信号输入。输出装置904可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器902中,当被所述一个或者多个处理器901执行时,执行上述任意方法实施例中的网络更新方法。所述执行所述网络更新方法的装置的实施例,其技术效果与前述任意方法实施例相同或者类似。

基于上述目的,本发明实施例的第三个方面,提出了一种非暂态计算机存储介质的一个实施例,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的列表项操作的处理方法。所述非暂态计算机存储介质的实施例,其技术效果与前述任意方法实施例相同或者类似。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。所述计算机程序的实施例,其技术效果与前述任意方法实施例相同或者类似。

此外,典型地,本公开所述的装置、设备等可为各种电子终端设备,例如手机、个人数字助理(PDA)、平板电脑(PAD)、智能电视等,也可以是大型终端设备,如服务器等,因此本公开的保护范围不应限定为某种特定类型的装置、设备。本公开所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。

此外,根据本公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本公开的方法中限定的上述功能。

此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。

此外,应该明白的是,本文所述的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)以及直接RambusRAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本公开的范围。

结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里所述功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。

结合这里的公开所描述的方法或算法的步骤可以直接包含在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的存储介质中。示例性的存储介质被耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在一个替换方案中,所述存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在一个替换方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。

在一个或多个示例性设计中,所述功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外先、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。

公开的示例性实施例,但是应当注公开的示例性实施例,但是应当注意,在不背离权利要求限定的本公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本公开的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、“the”)旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

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