本發(fā)明涉及通信工程領域,特別是指一種網(wǎng)絡更新方法及裝置。
背景技術:
由于網(wǎng)絡操作者,應用程序,網(wǎng)絡設備觸發(fā)的網(wǎng)絡更新事件,網(wǎng)絡狀況在不斷地改變。這些更新事件包括交換機升級,網(wǎng)絡失效,VM(虛擬機)遷移等等。當升級一個交換機的時候,為了確保網(wǎng)絡應用程序的正常運行,通過這個交換機的所有流都應該被遷移到網(wǎng)絡的其他路徑上去。對于VM遷移來講,由于虛擬機遷移到網(wǎng)絡中其他的服務器上,對應的所有流量都需要被遷移,因此產(chǎn)生了一組需要被遷移的新流。這一類的網(wǎng)絡更新事件產(chǎn)生了兩種后果:網(wǎng)絡拓撲的改變和流量矩陣的改變。從網(wǎng)絡的觀點來看,這些更新事件一個共同的原因就是網(wǎng)絡的不穩(wěn)定性。因此,每一個更新事件都應該提前制定有效的更新計劃。
對于一個初始網(wǎng)絡配置下的網(wǎng)絡更新事件,更新計劃通常需要提前訂制,它來源于期望的目的網(wǎng)絡狀態(tài),包括最終的網(wǎng)絡拓撲和流量矩陣。然而,更新過程通常會經(jīng)歷多個中間網(wǎng)絡狀態(tài),也許會經(jīng)歷嚴重的網(wǎng)絡擁塞和其他有挑戰(zhàn)的事情。正是由于這個原因,之前的更新計劃依賴于實現(xiàn)一個正確的轉換從初始網(wǎng)絡狀態(tài)到最終的網(wǎng)絡狀態(tài)。這些工作可以分為兩類:一是一致性的更新,也就是說,通過網(wǎng)絡的一個數(shù)據(jù)包或流僅遵守一個新的或舊的網(wǎng)絡配置;二是無擁塞的更新,它提前為每一個更新事件做一個更新計劃。
一個更新事件典型的涉及到一組新流或現(xiàn)有的流,如果這些流的執(zhí)行沒有結束,那么這個更新事件也是沒有完成的。然而,以前的更新方法孤立的處理這些流,而不是一個將其作為一個更新事件的整體。這些優(yōu)化流層面的方法并不適用于優(yōu)化事件層面的指標,包括單個更新事件完成時間,所有更新事件的完成時間及平均完成時間。事實上,每流更新的抽象并不能捕獲到事件層面需求,更不要提一組更新事件之間需求。也就是說,以前的更新方法并沒有提供一個架構來展示事件層面的更新語義而且導致了很多后果。例如,由于網(wǎng)絡資源被其他更新事件的大流占用,目前需要更新的事件缺少網(wǎng)絡資源,那么它的部分流可能被阻塞。這將會導致所有事件的完成時間和平均完成時間被延長。
在共享的網(wǎng)絡中,網(wǎng)絡操作者,應用程序和網(wǎng)絡設備產(chǎn)生了多個更新事件。這些更新事件在流的數(shù)目,流的大小,事件大小方面有很大區(qū)別。簡單的調度機制,如FIFO(先入先出機制),并不能應對這個問題。這經(jīng)常導致Head-of-Line Blocking(線頭阻塞)問題。也就是說,隊列首部的事件可能會很大,會長時間的占用很多的網(wǎng)絡資源。因此,很多比較小的排在隊列后面的事件由于長時間的等待,事件完成時間將會變慢。同樣,這也會導致整個隊列里面的所有更新事件的完成時間和平均完成時間降低。
本發(fā)明實施例可以簡單的優(yōu)先更新更新代價小的事件以減小事件的完成時間和平均完成時間,但是它影響了排隊事件固有的公平性。針對現(xiàn)有技術中更新排隊事件無法兼顧執(zhí)行效率與公平性的問題,目前尚未有有效的解決方案。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提出一種網(wǎng)絡更新方法及裝置,能夠兼顧執(zhí)行效率與公平性地更新排隊事件。
基于上述目的本發(fā)明實施例提供的網(wǎng)絡更新方法,包括:
持續(xù)獲取更新事件,并將所有未處理的更新事件按照到達時間由小到大建立未處理更新事件隊列;
從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件,并計算所有被指定更新事件的更新代價;
根據(jù)所有被指定更新事件各自的更新代價確定下一個被處理的更新事件。
在一些可選實施方式中,計算所有被指定更新事件的更新代價包括:
將更新事件分割為多組不可分割的流;
分別確定更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合;
根據(jù)更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合,獲得更新事件的更新代價。
在一些可選實施方式中,分別確定更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合包括:
確定網(wǎng)絡中每條鏈路均無擁塞;
根據(jù)每組流的路徑確定該組流導致?lián)砣逆溌芳希?/p>
根據(jù)每組流導致?lián)砣逆溌芳洗_定該組流導致?lián)砣溌返谋尘傲髁浚?/p>
根據(jù)每組流導致?lián)砣逆溌芳吓c該組流導致?lián)砣溌返谋尘傲髁?,確定該組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合。
在一些可選實施方式中,確定網(wǎng)絡中每條鏈路均無擁塞包括:
根據(jù)每組流的帶寬需求與該組流在其路徑的每條鏈路上所占用的帶寬,確定每組流均不可分割;
根據(jù)每組流的帶寬需求與該組流在其路徑之外的每條鏈路上所占用的帶寬,確定每組流均具有一個確定的路徑;
根據(jù)網(wǎng)絡中每條鏈路的剩余帶寬,確定網(wǎng)絡中每條鏈路均無擁塞。
在一些可選實施方式中,根據(jù)每組流導致?lián)砣逆溌芳吓c該組流導致?lián)砣溌返谋尘傲髁?,確定該組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合時,該組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合中任一組流的遷移不引起網(wǎng)絡中其他鏈路的擁塞。
在一些可選實施方式中,根據(jù)更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合,獲得更新事件的更新代價,為根據(jù)更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合,獲得更新事件的中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合之和的最小值。
在一些可選實施方式中,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件包括:
獲取所述預先設定的指定數(shù)量;
當未處理更新事件隊列中更新事件總數(shù)量大于所述指定數(shù)量加一時,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件;
當未處理更新事件隊列中更新事件總數(shù)量小于等于所述指定數(shù)量加一時,從未處理更新事件隊列中隨機選取一件非隊列第一更新事件與隊列第一更新事件。
在一些可選實施方式中,根據(jù)所有被指定更新事件各自的更新代價確定下一個被處理的更新事件,為選取所有被指定更新事件中更新代價最小的更新事件確定為下一個被處理的更新事件。
在一些可選實施方式中,其特征在于,確定下一個被處理的更新事件之后,判斷其他被指定更新事件是否能按照其在未處理更新事件隊列中的位置順序與下一個被處理的更新事件同時更新。
從上面所述可以看出,本發(fā)明實施例提供的網(wǎng)絡更新方法及裝置,通過持續(xù)獲取更新事件,并將所有未處理的更新事件按照到達時間由小到大建立未處理更新事件隊列,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件,并計算所有被指定更新事件的更新代價,根據(jù)所有被指定更新事件各自的更新代價確定下一個被處理的更新事件的技術手段,兼顧執(zhí)行效率與公平性地更新排隊事件。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術中基于Yahoo!數(shù)據(jù)中心的流量特征的一個更新事件的一條流加入k=8Fat-Tree數(shù)據(jù)中心網(wǎng)絡的成功率折線示意圖;
圖2為現(xiàn)有技術中基于隨機產(chǎn)生背景流量的流量特征的一個更新事件的一條流加入k=8Fat-Tree數(shù)據(jù)中心網(wǎng)絡的成功率折線示意圖;
圖3為三個更新事件引起的一系列流的調度順序對比示意圖;
圖4為本發(fā)明提供的網(wǎng)絡更新方法的流程示意圖;
圖5為根據(jù)現(xiàn)有技術中的FIFO的方法更新三個更新事件的調度順序示意圖;
圖6為本發(fā)明提供的網(wǎng)絡更新裝置中的LMTF方法更新三個更新事件的調度順序示意圖;
圖7為本發(fā)明提供的執(zhí)行所述網(wǎng)絡更新方法的裝置的一個實施例的硬件結構示意圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,并參照附圖,對本發(fā)明實施例進一步詳細說明。
需要說明的是,本發(fā)明實施例中所有使用“第一”和“第二”的表述均是為了區(qū)分兩個相同名稱非相同的實體或者非相同的參量,可見“第一”“第二”僅為了表述的方便,不應理解為對本發(fā)明實施例的限定,后續(xù)實施例對此不再一一說明。
一個更新事件通常涉及到新流的集合或現(xiàn)有流的集合。這個集合的每一條流都需要競爭所在路徑上的網(wǎng)絡資源。然而,所在路徑的剩余帶寬可能并不能為新流提供充足的網(wǎng)絡資源。在這個場景中,一旦新流加入網(wǎng)絡,需求路徑上將會出現(xiàn)擁塞,特別是當網(wǎng)絡鏈路利用率很高的情況下。圖1與圖2示出的是一個更新事件的一條流加入k=8Fat-Tree數(shù)據(jù)中心網(wǎng)絡的成功率。在Yahoo!數(shù)據(jù)中心的流量特征與隨機產(chǎn)生的背景流量的情境下,實驗結果可以看出隨著鏈路利用率的增加,無論流的大小是多少,成功率都在減小。
由于上述原因,當對更新事件涉及的流進行更新時,本發(fā)明實施例有必要首先查看需求路徑上的鏈路是否能提供充足的帶寬資源給新流。如果不行,那么本發(fā)明實施例就需要重新考量此更新事件。一個基本的方法是給網(wǎng)絡中的流分配優(yōu)先級。如果這些低優(yōu)先級的已存在的流占用了高優(yōu)先級流的路徑,這些低優(yōu)先級的流將會被遷移。由于流的大量重傳,這個規(guī)則將會產(chǎn)生大量流量遷移。更糟糕的是,本發(fā)明實施例應該遷移哪些已存在的流去滿足一個更新事件的某一個新流的更新是一個已經(jīng)被證明的NP-hard問題。
另一個方法是重新路由網(wǎng)絡中所有的流來提供充足的網(wǎng)絡資源給更新時間涉及到的新流。當網(wǎng)絡拓撲或流量矩陣改變時,這個規(guī)則致力于實現(xiàn)更好的網(wǎng)絡性能,例如負載均衡,更高的鏈路利用率。這將消耗大量的時間來接一系列的線性規(guī)劃問題。由于網(wǎng)絡所有流的全局重新路由,從而導致嚴重的全網(wǎng)規(guī)模的流遷移。
盡管考慮了這么多,網(wǎng)絡更新問題仍然缺乏有效的解決方案。在這篇文章中,對于一個包含一組新流的網(wǎng)絡更新事件,本發(fā)明實施例提出一個策略,本地的調度需求路徑上,擁塞鏈路段上的背景流。對于一個更新事件中的一條流,本發(fā)明實施例首先檢測是否存在一條可行的路徑,它的剩余鏈路資源足以滿足新流對網(wǎng)絡資源的需求。如果不存在這樣一條路徑,本發(fā)明實施例本地的調整擁塞鏈路上的背景流量到其他可行的路徑上去,以滿足新流對網(wǎng)絡資源的需求。遷移的背景流量越多,消耗的時間也越多,對應用程序造成的影響也會越大。本發(fā)明實施例期望找到一個本地的路由方案來最小化遷移的背景流量,同時其釋放的網(wǎng)絡資源正好可以滿足更新事件包含的新流對網(wǎng)絡帶寬的需求。
上述方法優(yōu)化了流層面的指標,例如成功率和更新速度。然而,這些方法并不能優(yōu)化事件層面的指標,例如事件完成時間,事件平均完成時間。這些指標對于網(wǎng)絡更新來說是最主要的目標。如圖3所示,考慮由三個更新事件引起的一系列流。本發(fā)明實施例可以獨立地調度每一條流。另一個方法是將一個事件產(chǎn)生的流看作一個整體,然后按照確定的順序調度。按照事件層面的調度方法,這三個更新事件的平均完成時間是(3+7+12)/3=22/3,低于流層面的調度方法所用的時間(9+11+12)/3=32/3。對于這三個事件的總完成時間,兩種方法的結果是一樣的。這是因為本發(fā)明實施例假設所有流的持續(xù)時間是一樣的。事實上,真實的網(wǎng)絡中,流的持續(xù)時間并不相同。因此,三個事件的完成時間也同樣會改變。
基于上述目的,本發(fā)明實施例的第一個方面,提出了一種能夠針對不同用戶或不同類型的用戶進行數(shù)據(jù)推薦的網(wǎng)絡更新方法的第一個實施例。如圖4所示,為本發(fā)明提供的網(wǎng)絡更新方法的第一個實施例的流程示意圖。
所述網(wǎng)絡更新方法,可選的,應用于服務器,包括:
步驟S101,持續(xù)獲取更新事件,并將所有未處理的更新事件按照到達時間由小到大建立未處理更新事件隊列;
步驟S103,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件,并計算所有被指定更新事件的更新代價;
步驟S105,根據(jù)所有被指定更新事件各自的更新代價確定下一個被處理的更新事件。
在一些可選實施方式中,計算所有被指定更新事件的更新代價包括:
將更新事件分割為多組不可分割的流;
分別確定更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合;
根據(jù)更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合,獲得更新事件的更新代價。
在一些可選實施方式中,分別確定更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合包括:
確定網(wǎng)絡中每條鏈路均無擁塞;
根據(jù)每組流的路徑確定該組流導致?lián)砣逆溌芳希?/p>
根據(jù)每組流導致?lián)砣逆溌芳洗_定該組流導致?lián)砣溌返谋尘傲髁浚?/p>
根據(jù)每組流導致?lián)砣逆溌芳吓c該組流導致?lián)砣溌返谋尘傲髁浚_定該組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合。
在一些可選實施方式中,確定網(wǎng)絡中每條鏈路均無擁塞包括:
根據(jù)每組流的帶寬需求與該組流在其路徑的每條鏈路上所占用的帶寬,確定每組流均不可分割;
根據(jù)每組流的帶寬需求與該組流在其路徑之外的每條鏈路上所占用的帶寬,確定每組流均具有一個確定的路徑;
根據(jù)網(wǎng)絡中每條鏈路的剩余帶寬,確定網(wǎng)絡中每條鏈路均無擁塞。
在一些可選實施方式中,根據(jù)每組流導致?lián)砣逆溌芳吓c該組流導致?lián)砣溌返谋尘傲髁浚_定該組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合時,該組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合中任一組流的遷移不引起網(wǎng)絡中其他鏈路的擁塞。
在一些可選實施方式中,根據(jù)更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合,獲得更新事件的更新代價,為根據(jù)更新事件中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合,獲得更新事件的中每組流被網(wǎng)絡傳輸時產(chǎn)生的背景流量遷移集合之和的最小值。
在一些可選實施方式中,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件包括:
獲取所述預先設定的指定數(shù)量;
當未處理更新事件隊列中更新事件總數(shù)量大于所述指定數(shù)量加一時,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件;
當未處理更新事件隊列中更新事件總數(shù)量小于等于所述指定數(shù)量加一時,從未處理更新事件隊列中隨機選取一件非隊列第一更新事件與隊列第一更新事件。
在一些可選實施方式中,根據(jù)所有被指定更新事件各自的更新代價確定下一個被處理的更新事件,為選取所有被指定更新事件中更新代價最小的更新事件確定為下一個被處理的更新事件。
在一些可選實施方式中,其特征在于,確定下一個被處理的更新事件之后,判斷其他被指定更新事件是否能按照其在未處理更新事件隊列中的位置順序與下一個被處理的更新事件同時更新。
綜上所述,借助于本發(fā)明實施例的上述技術方案,通過持續(xù)獲取更新事件,并將所有未處理的更新事件按照到達時間由小到大建立未處理更新事件隊列,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件,并計算所有被指定更新事件的更新代價,根據(jù)所有被指定更新事件各自的更新代價確定下一個被處理的更新事件的技術手段,兼顧執(zhí)行效率與公平性地更新排隊事件。
本發(fā)明實施例還提出了一種能夠針對不同用戶或不同類型的用戶進行數(shù)據(jù)推薦的網(wǎng)絡更新方法的第二個實施例。
所述網(wǎng)絡更新方法,可選的,應用于服務器,包括:
步驟S101,持續(xù)獲取更新事件,并將所有未處理的更新事件按照到達時間由小到大建立未處理更新事件隊列。
步驟S103,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件,并計算所有被指定更新事件的更新代價。
網(wǎng)絡定義為一個圖G=(V,E)。V和E分別代表一組交換機和一組連接這些交換機的鏈路。ci,j代表鏈路ei,j∈E的剩余帶寬,D代表網(wǎng)絡直徑,F(xiàn)代表網(wǎng)絡所有的流。對于任意一個流f∈F,它的帶寬需求是df。流f被路由到可行的路徑集合P(f)中的一條路徑p上。對于路徑p上的每一條鏈路ei,j,代表流f在鏈路ei,j上占用的帶寬。如果下面的條件滿足,本發(fā)明實施例就說網(wǎng)絡是無擁塞的。
上面的限制條件確保每一條流f∈F是不可分割的、被轉發(fā)到一個確定的路徑p上、當網(wǎng)絡容納了更新事件里面的所有流F之后網(wǎng)絡中的每一條鏈路仍是無擁塞的。
考慮一條要加入包含流集合F的網(wǎng)絡的一條新流fa。當流fa要通過一條路徑p∈P(fa),它可能會在一些鏈路上產(chǎn)生擁塞。本發(fā)明實施例將由流fa導致的擁塞鏈路的集合定義為即:
然后,本發(fā)明實施例定義了經(jīng)過這些擁塞鏈路的背景流量:
到目前為止,為了遷移流fa,本發(fā)明實施例盡力去找出FA的一個子集Fa。因此,如果集合FA中的所有流都被遷走了,流fa就可以被網(wǎng)絡傳輸。也就是說:
本發(fā)明實施例將更新事件U抽象成一組相關的流,表示為U={f1,f2,…,fw}。對于任一條流fa∈U,它將導致集合Fa中已有流的遷移。這些集合里面遷移的流的流量和定義為一個更新事件U的更新代價,即:
其中,sum(Fa)代表因為加入新流fa而產(chǎn)生的遷移的背景流量的和。
考慮網(wǎng)絡應用程序上流量遷移帶來的消極影響。在這篇文章中,本發(fā)明實施例意在減小由于一個包含W條流的更新事件U引起的流量遷移。為了解決這個問題,本發(fā)明實施例需要找到FA的一個最小子集Fa。如果集合Fa中的所有流都被遷移到別的可行路徑上,則流fa可以在網(wǎng)絡中傳輸。因此,擁塞鏈路上的剩余鏈路帶寬和遷移流量之和應該大于新流fa的需求帶寬,正如(1)表示的那樣。
任意一個包含w條流的更新事件U的更新代價優(yōu)化問題可以被組織稱下面的形式:
另外,集合Fa里面任一流的遷移不回引起其他路徑上的擁塞,即:
步驟S105,根據(jù)所有被指定更新事件各自的更新代價確定下一個被處理的更新事件。
對任意一個流fa∈U,計算一個集合Fa是一個NP-complete問題。因此,本發(fā)明實施例設計了一個貪婪的策略來降低需要遷移的背景流量。
調度順序決定了多個更新事件在一定限制條件下的執(zhí)行順序。然而,確定調度順序來減小事件平均完成時間很難,更不要說還要滿足多個設計條件。事實上,為多個事件中的流分配帶寬需要滿足很多而且經(jīng)常沖突的限制條件。因此,本發(fā)明實施例選取了多個準則來解決多個事件的調度問題。
一個更新事件將會導致一些背景流量遷移到網(wǎng)絡其他路徑上去,以便釋放資源給更新事件包含的流。遷移過多的流量將會給網(wǎng)絡造成潛在的,難以估計的影響。甚至,重新路由現(xiàn)有流量將會消耗大量的時間,可能會因此延遲一個更新事件的執(zhí)行。所以,一個更新事件產(chǎn)生的流遷移應該被減少。
一個網(wǎng)絡中存在有不同原因導致的各種更新事件。他們在流的數(shù)目,流的大小,事件總大小方面都不同。一個負載較大的更新事件將會消耗更多的網(wǎng)絡資源,造成很高的更新代價。對一組異步更新事件,為了提高整個隊列里的事件的整體更新速度本發(fā)明實施例面臨重大的挑戰(zhàn)。
本發(fā)明實施例事件層面的抽象對于減小一個更新事件的完成時間很有效。當本發(fā)明實施例需要同時處理多個更新事件時,平均和總的事件完成時間是事件層面兩個重要的指標。在這個設置里,一個很早到達隊列的大負載的事件,如果按照到達的順序被調度,它會持續(xù)很長時間,持久的占用網(wǎng)絡資源,從而阻塞了其他到達較晚的校服在的更新事件。這種延遲將會導致隊列中所有更新事件的平均完成時間和總的完成時間增加。
對于一個更新事件隊列,除了考慮像事件的平均完成時間這樣的效率指標之外,本發(fā)明實施例還應該考慮公平性。然而,同時保證公平性和效率是一個很挑戰(zhàn)的問題。為了確保公平性,到達較早的更新事件應該比到達晚的事件有限執(zhí)行。然而,如果隊列中所有的事件都嚴格地按照到達的順序來執(zhí)行,到達較早的,負載較重的事件將會阻塞后面到來的小負載事件。這將會嚴重影響調度效率。因此,本發(fā)明實施例通過微調更新事件的執(zhí)行順序來提高更新的效率,同時,提供更多的機會給答復在事件期望它能和隊列頭部的事件同時執(zhí)行。
本發(fā)明實施例更傾向于基于到達時間的順序來執(zhí)行更新事件,同時動態(tài)調整的執(zhí)行序列,應對head-of-line阻塞問題。考慮n個更新事件U1,U2,…Un.本發(fā)明實施例隨機選擇兩個更新事件Ub和Uc,其中分別包含v和w條流。為了在網(wǎng)絡中中更新事件Ub和Uc中的流fb和fc,本發(fā)明實施例讓Fb和Fc分別表示需要遷移的現(xiàn)有的流的集合。然后,本發(fā)明實施例計算這兩個更新事件的更新代價:
最后,為了在一定程度上保證公平性,本發(fā)明實施例比較隊列的頭事件和隨機挑選的兩個更新事件的更新代價,然后執(zhí)行里面更新代價最小的事件。
上面的調度模型在稍微放松對公平性的要求下,減少了事件完成時間和平均完成時間。為了提高公平水平,本發(fā)明實施例上述模型的基礎上提出機會更新模型。基本的想法是根據(jù)上述模型找到下一輪將要被執(zhí)行的放在隊列首部的更新事件,同時更新隊列后面可以與隊列首部事件同時更新的事件。這樣的話,一個隊列前面的大負載事件,在之前的模型中由于過大的更新代價而被推遲,在機會更新的模型中,這種被推遲的大負載事件將會有機會按照到達的順序及時執(zhí)行。該模型進一步增加調度效率,也在一定程度上提高了公平性。
對任意更新事件,下面的兩個問題決定了事件完成時間。首先,如果一個更新事件包含的新流期望的傳輸路徑上的剩余資源不足以傳輸新流,本發(fā)明實施例是否要將此路徑上原有的背景流量遷走。如果需要遷移一部分背景流量,這些流量應該被遷移到哪些路徑上去,以確保每條流都有充足的網(wǎng)絡資源可用。其次,為了使更新事件里面的流可以有充足的網(wǎng)絡資源,哪一部分背景流量應該被遷移。這個問題已經(jīng)被證明是一個NP-hard問題。因此,本發(fā)明實施例設計了一個近似算法來決定最小的遷移流量。通過遷移這些流,更新事件包含的流將會有充足的網(wǎng)絡資源在網(wǎng)絡中傳輸。
在重路由的過程中,一個更新事件所引起的遷移的任意一條流都與網(wǎng)絡中其他的流量競爭網(wǎng)絡資源,例如鏈路帶寬和交換機上的稀有資源。這個行為進一步影響了網(wǎng)絡控制多個更新事件的能力。甚至,遷移現(xiàn)有的流量將會消耗大量的時間,因此會降低更新事件的完成時間。所以,很有必要去降低更新事件的更新代價,即,遷移的背景流量,以便于本發(fā)明實施例進一步降低每一個事件的更新時間。對于一組更新事件,由于網(wǎng)絡配置的動態(tài)性,排隊的更新事件的代價將會變化。這給本發(fā)明實施例優(yōu)化調度多個更新事件帶來了更多的挑戰(zhàn)。
算法一解釋了本發(fā)明實施例的更新代價優(yōu)化方法,即,減小因為一個更新事件所引起的流量遷移。輸入為任一個更新事件Ua和一個變量δ。對于一個更新事件的每一條流fa,本發(fā)明實施例首先查看網(wǎng)絡中是否有一條路徑有足夠的網(wǎng)絡資源來傳輸這條流。如果不存在這樣的一條路徑,那么,本發(fā)明實施例收集擁塞鏈路上的背景流量組成一個候選集集合FA。本發(fā)明實施例盡力從這個候選集和里面挑出一個最小的子集Fa。通過遷移這個子集里面的流,更新事件的網(wǎng)絡資源需求將會得到滿足。同時,集合Fa里面的每一條流都可以被遷移到其他的路徑上而不會產(chǎn)生擁塞。
上述優(yōu)化方法可以有效地減少一個更新事件的完成時間。當更新事件按照到達的先后順序組成一個隊列時,它尚不清楚如何調度這些更新事件。調度順序不但決定了平均事件完成時間和總的事件完成時間這兩個效率的指標,而且決定更新事件之間的公平性。在這種環(huán)境下,FIFO由于其簡單實現(xiàn)和嚴格的公平性,受到了很多人的喜愛。如果這種更新事件的持續(xù)時間非常相似,FIFO被證明是最優(yōu)的方法來減小事件的完成時間,實現(xiàn)嚴格公平。如果事件的持續(xù)時間呈長尾分布,由一些重負載的事件排在隊列的前面,F(xiàn)IFO方法經(jīng)常引起head-of-blocking問題。從而增加了事件總的完成時間和平均完成時間。在這個場景中,由于需要嚴格的保證公平性,F(xiàn)IFO不能高效的完成更新事件。對于有多個更新事件組成的更新隊列,本發(fā)明實施例稍微放松的公平性要求以期待降低事件的平均完成時間和總的完成時間。
一種內在的方法是根據(jù)更新代價來對隊列里的事件進行重新排隊,首先選擇更新代價最低的事件執(zhí)行。圖5與圖6給出了調度三個更新事件的一個例子。這些更新事件的執(zhí)行時間都是1秒。事件U1的更新代價是4s,事件U2和U3的代價都是1秒。這樣,如圖5所示,按照FIFO的方法,這些更新事件的平均完成時間是(5+7+9)/3=7秒,事件完成時間都是9秒。如果本發(fā)明實施例根據(jù)更新代價調整更新事件的執(zhí)行順序,如圖6所示,平均事件完成時間減少到(2+4+9)/3=5秒,事件完成時間保持不變。從理論上講,對所有更新事件的重新排序可能解決head-of-line阻塞問題,從而避免了低更新代價的事件的長時間等待問題。正如在第四節(jié)所討論的,這個方法需要大量的計算和時間開銷,也會失去公平性,并且會導致其他方面的問題。
本發(fā)明實施例提出LMTF,一個簡單但是有效的調度方法。它首先調度這些更新事件按照到達的順序,然后動態(tài)的調整更新的順序,通過對比隊列首部事件的更新代價和隊列中任意幾個事件的更新代價的大小,從而選擇更新代價更小的事件首先執(zhí)行。從而避免head-of-line阻塞問題?;舅枷胧菑年犃欣锩骐S機挑選α≥1個更新事件,選擇更新代價最小的事件。同時,為了在一定程度上保證公平性,本發(fā)明實施例將它與隊列頭部事件的更新事件進行比較。最終,在這α+1個事件中選擇更新代價最小的事件執(zhí)行。如果最終的隊列頭部事件仍然被選中,那么在這一次的更新中,F(xiàn)IFO的嚴格公平性也就得到了滿足。否則,這個頭部事件就是一個重負載的事件,它將會阻塞后面負載較小的事件。
算法二詳細敘述了本發(fā)明實施例的LMTF方法。注意當隊列中的更新事件數(shù)目不足α+1個時,本發(fā)明實施例不允許采樣α個事件。評價結果表明本發(fā)明實施例的LMTF方法,對于任一個更新事件的隊列,都可以有效的降低事件的平均完成時間和總的完成時間,即使本發(fā)明實施例僅僅采樣在隊列里隨機采樣2個更新事件來挑選更新代價較低的事件。
注意到本發(fā)明實施例的LMTF方法在稍微放松公平性的前提下,有效的提高了調度的效率。也就是說,對隊列中某些更新事件執(zhí)行順序的調整,將會使到達隊列較早的大負載的事件延遲一段時間才能被調度。因此,還有很大的空間可以提高調度的公平性,同時減小隊列中任意事件的平均完成時間和總的完成時間。為了這個目的,本發(fā)明實施例在微調更新事件執(zhí)行順序的基礎上提出機會更新。
簡單方法FIFO的通用特點,和本發(fā)明實施例的微調更新事件順序的方法都是順序的更新。也就是說,網(wǎng)絡一次僅執(zhí)行一個更新事件,這個事件是隊列目前頭部事件或者是從后面選擇的更新代價小的事件。相反地,本發(fā)明實施例關注于識別隊列中的那些可以和隊列的頭部事件同時更新的事件。
為了這個目的,本發(fā)明實施例提出機會更新的方法,一個比微調事件調度順序更通用的方法?;镜南敕ㄊ峭ㄟ^微調事件調度順序的方法找到隊列首部待更新的事件,然后尋找更新事件隊列中是否存在和隊列首部的事件同時執(zhí)行的事件。一個最先到達的負載較大的事件在微調事件順序的方法中將會在后面的幾輪更新中被調度。然而,在機會更新的方法中,這個大負載事件將會被檢測是否可以和待更新的事件一起被更新。采用這樣的方法,由于更新的并行性,更新效率可以被有效地提高。公平性也在一定程度上得到了提高。
本發(fā)明實施例提出一個啟發(fā)式的算法P-LMTF來實現(xiàn)上述設計。第一步,按照和LMTF同樣的方法,本發(fā)明實施例建立一個候選集和,包含初始的隊列首部事件和其他的α個在更新事件隊列里隨機挑選的事件。候選集中更新代價最小的事件將會被選為隊列的新頭部事件,等待執(zhí)行。第二步,本發(fā)明實施例檢測候選集中其他的α個更新事件是否可以按照他們到達的順序和新的頭事件一起被更新。也就是說,第二步提供了更多的機會給到達隊列較早的事件,因此有效的提高了公平性。
算法三提供有關于如何實現(xiàn)多個更新事件無擁塞更新的機會調度的具體細節(jié)。注意P-LMTF并沒有檢測整個隊列里面的所有事件,來搜索那些能和隊列頭部事件一起更新的事件。原因是對整個更新隊列的檢測會導致巨大的計算和時間開銷,特別是在大規(guī)模的網(wǎng)絡中。此外,網(wǎng)絡中肯定存在多個可以被同時更新事件。實驗結果表明,算法三中任取α個更新事件有效的實現(xiàn)了機會更新的優(yōu)勢,即使當α取2時。
綜上所述,借助于本發(fā)明實施例的上述技術方案,通過持續(xù)獲取更新事件,并將所有未處理的更新事件按照到達時間由小到大建立未處理更新事件隊列,從未處理更新事件隊列中隨機選取指定數(shù)量的非隊列第一更新事件與隊列第一更新事件,并計算所有被指定更新事件的更新代價,根據(jù)所有被指定更新事件各自的更新代價確定下一個被處理的更新事件的技術手段,兼顧執(zhí)行效率與公平性地更新排隊事件。
需要特別指出的是,上述網(wǎng)絡更新方法的各個實施例中的各個步驟均可以相互交叉、替換、增加、刪減,因此,這些合理的排列組合變換之于網(wǎng)絡更新方法也應當屬于本發(fā)明的保護范圍,并且不應將本發(fā)明的保護范圍局限在所述實施例之上。
基于上述目的,本發(fā)明實施例的第二個方面,提出了一種執(zhí)行所述網(wǎng)絡更新方法的裝置的一個實施例。如圖7所示,為本發(fā)明提供的執(zhí)行所述網(wǎng)絡更新方法的裝置的一個實施例的硬件結構示意圖。
如圖7所示,所述裝置包括:
一個或多個處理器901以及存儲器902,圖7中以一個處理器901為例。
所述執(zhí)行所述網(wǎng)絡更新方法的裝置還可以包括:輸入裝置903和輸出裝置904。
處理器901、存儲器902、輸入裝置903和輸出裝置904可以通過總線或者其他方式連接,圖7中以通過總線連接為例。
存儲器902作為一種非易失性計算機可讀存儲介質,可用于存儲非易失性軟件程序、非易失性計算機可執(zhí)行程序以及模塊,如本申請實施例中的所述網(wǎng)絡更新方法對應的程序指令/模塊。處理器901通過運行存儲在存儲器1002中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務器的各種功能應用以及數(shù)據(jù)處理,即實現(xiàn)上述方法實施例的網(wǎng)絡更新方法。
存儲器902可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需要的應用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)網(wǎng)絡更新裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲器902可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態(tài)存儲器件。在一些實施例中,存儲器902可選包括相對于處理器901遠程設置的存儲器,這些遠程存儲器可以通過網(wǎng)絡連接至會員用戶行為監(jiān)控裝置。上述網(wǎng)絡的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
輸入裝置903可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與網(wǎng)絡更新裝置的用戶設置以及功能控制有關的鍵信號輸入。輸出裝置904可包括顯示屏等顯示設備。
所述一個或者多個模塊存儲在所述存儲器902中,當被所述一個或者多個處理器901執(zhí)行時,執(zhí)行上述任意方法實施例中的網(wǎng)絡更新方法。所述執(zhí)行所述網(wǎng)絡更新方法的裝置的實施例,其技術效果與前述任意方法實施例相同或者類似。
基于上述目的,本發(fā)明實施例的第三個方面,提出了一種非暫態(tài)計算機存儲介質的一個實施例,所述計算機存儲介質存儲有計算機可執(zhí)行指令,該計算機可執(zhí)行指令可執(zhí)行上述任意方法實施例中的列表項操作的處理方法。所述非暫態(tài)計算機存儲介質的實施例,其技術效果與前述任意方法實施例相同或者類似。
最后需要說明的是,本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。所述計算機程序的實施例,其技術效果與前述任意方法實施例相同或者類似。
此外,典型地,本公開所述的裝置、設備等可為各種電子終端設備,例如手機、個人數(shù)字助理(PDA)、平板電腦(PAD)、智能電視等,也可以是大型終端設備,如服務器等,因此本公開的保護范圍不應限定為某種特定類型的裝置、設備。本公開所述的客戶端可以是以電子硬件、計算機軟件或兩者的組合形式應用于上述任意一種電子終端設備中。
此外,根據(jù)本公開的方法還可以被實現(xiàn)為由CPU執(zhí)行的計算機程序,該計算機程序可以存儲在計算機可讀存儲介質中。在該計算機程序被CPU執(zhí)行時,執(zhí)行本公開的方法中限定的上述功能。
此外,上述方法步驟以及系統(tǒng)單元也可以利用控制器以及用于存儲使得控制器實現(xiàn)上述步驟或單元功能的計算機程序的計算機可讀存儲介質實現(xiàn)。
此外,應該明白的是,本文所述的計算機可讀存儲介質(例如,存儲器)可以是易失性存儲器或非易失性存儲器,或者可以包括易失性存儲器和非易失性存儲器兩者。作為例子而非限制性的,非易失性存儲器可以包括只讀存儲器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦寫可編程ROM(EEPROM)或快閃存儲器。易失性存儲器可以包括隨機存取存儲器(RAM),該RAM可以充當外部高速緩存存儲器。作為例子而非限制性的,RAM可以以多種形式獲得,比如同步RAM(DRAM)、動態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙數(shù)據(jù)速率SDRAM(DDR SDRAM)、增強SDRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)以及直接RambusRAM(DRRAM)。所公開的方面的存儲設備意在包括但不限于這些和其它合適類型的存儲器。
本領域技術人員還將明白的是,結合這里的公開所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實現(xiàn)為電子硬件、計算機軟件或兩者的組合。為了清楚地說明硬件和軟件的這種可互換性,已經(jīng)就各種示意性組件、方塊、模塊、電路和步驟的功能對其進行了一般性的描述。這種功能是被實現(xiàn)為軟件還是被實現(xiàn)為硬件取決于具體應用以及施加給整個系統(tǒng)的設計約束。本領域技術人員可以針對每種具體應用以各種方式來實現(xiàn)所述的功能,但是這種實現(xiàn)決定不應被解釋為導致脫離本公開的范圍。
結合這里的公開所描述的各種示例性邏輯塊、模塊和電路可以利用被設計成用于執(zhí)行這里所述功能的下列部件來實現(xiàn)或執(zhí)行:通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或晶體管邏輯、分立的硬件組件或者這些部件的任何組合。通用處理器可以是微處理器,但是可替換地,處理器可以是任何傳統(tǒng)處理器、控制器、微控制器或狀態(tài)機。處理器也可以被實現(xiàn)為計算設備的組合,例如,DSP和微處理器的組合、多個微處理器、一個或多個微處理器結合DSP核、或任何其它這種配置。
結合這里的公開所描述的方法或算法的步驟可以直接包含在硬件中、由處理器執(zhí)行的軟件模塊中或這兩者的組合中。軟件模塊可以駐留在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動盤、CD-ROM、或本領域已知的任何其它形式的存儲介質中。示例性的存儲介質被耦合到處理器,使得處理器能夠從該存儲介質中讀取信息或向該存儲介質寫入信息。在一個替換方案中,所述存儲介質可以與處理器集成在一起。處理器和存儲介質可以駐留在ASIC中。ASIC可以駐留在用戶終端中。在一個替換方案中,處理器和存儲介質可以作為分立組件駐留在用戶終端中。
在一個或多個示例性設計中,所述功能可以在硬件、軟件、固件或其任意組合中實現(xiàn)。如果在軟件中實現(xiàn),則可以將所述功能作為一個或多個指令或代碼存儲在計算機可讀介質上或通過計算機可讀介質來傳送。計算機可讀介質包括計算機存儲介質和通信介質,該通信介質包括有助于將計算機程序從一個位置傳送到另一個位置的任何介質。存儲介質可以是能夠被通用或專用計算機訪問的任何可用介質。作為例子而非限制性的,該計算機可讀介質可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲設備、磁盤存儲設備或其它磁性存儲設備,或者是可以用于攜帶或存儲形式為指令或數(shù)據(jù)結構的所需程序代碼并且能夠被通用或專用計算機或者通用或專用處理器訪問的任何其它介質。此外,任何連接都可以適當?shù)胤Q為計算機可讀介質。例如,如果使用同軸線纜、光纖線纜、雙絞線、數(shù)字用戶線路(DSL)或諸如紅外線、無線電和微波的無線技術來從網(wǎng)站、服務器或其它遠程源發(fā)送軟件,則上述同軸線纜、光纖線纜、雙絞線、DSL或諸如紅外先、無線電和微波的無線技術均包括在介質的定義。如這里所使用的,磁盤和光盤包括壓縮盤(CD)、激光盤、光盤、數(shù)字多功能盤(DVD)、軟盤、藍光盤,其中磁盤通常磁性地再現(xiàn)數(shù)據(jù),而光盤利用激光光學地再現(xiàn)數(shù)據(jù)。上述內容的組合也應當包括在計算機可讀介質的范圍內。
公開的示例性實施例,但是應當注公開的示例性實施例,但是應當注意,在不背離權利要求限定的本公開的范圍的前提下,可以進行多種改變和修改。根據(jù)這里描述的公開實施例的方法權利要求的功能、步驟和/或動作不需以任何特定順序執(zhí)行。此外,盡管本公開的元素可以以個體形式描述或要求,但是也可以設想多個,除非明確限制為單數(shù)。
應當理解的是,在本文中使用的,除非上下文清楚地支持例外情況,單數(shù)形式“一個”(“a”、“an”、“the”)旨在也包括復數(shù)形式。還應當理解的是,在本文中使用的“和/或”是指包括一個或者一個以上相關聯(lián)地列出的項目的任意和所有可能組合。
上述本公開實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
所屬領域的普通技術人員應當理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權利要求)被限于這些例子;在本發(fā)明實施例的思路下,以上實施例或者不同實施例中的技術特征之間也可以進行組合,并存在如上所述的本發(fā)明實施例的不同方面的許多其它變化,為了簡明它們沒有在細節(jié)中提供。因此,凡在本發(fā)明實施例的精神和原則之內,所做的任何省略、修改、等同替換、改進等,均應包含在本發(fā)明實施例的保護范圍之內。