TWI608360B - 任務執行方法及任務調度系統 - Google Patents

任務執行方法及任務調度系統 Download PDF

Info

Publication number
TWI608360B
TWI608360B TW105128326A TW105128326A TWI608360B TW I608360 B TWI608360 B TW I608360B TW 105128326 A TW105128326 A TW 105128326A TW 105128326 A TW105128326 A TW 105128326A TW I608360 B TWI608360 B TW I608360B
Authority
TW
Taiwan
Prior art keywords
task
tasks
working machine
execution
sets
Prior art date
Application number
TW105128326A
Other languages
English (en)
Other versions
TW201810067A (zh
Inventor
梁從慶
陳干越
劉家宇
Original Assignee
群暉科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 群暉科技股份有限公司 filed Critical 群暉科技股份有限公司
Priority to TW105128326A priority Critical patent/TWI608360B/zh
Application granted granted Critical
Publication of TWI608360B publication Critical patent/TWI608360B/zh
Publication of TW201810067A publication Critical patent/TW201810067A/zh

Links

Landscapes

  • Numerical Control (AREA)

Description

任務執行方法及任務調度系統
本發明描述一種任務執行方法及任務調度系統,尤指一種具有自動修復任務功能及負載平衡功能的任務執行方法及任務調度系統。
隨著科技日新月異,各種資料庫、雲端儲存裝置以及資料備份伺服器等設備已經廣泛地應用於日常生活中。並且,由於網路速度以及處理器效能的進步,資料存取的速度亦成為目前各種資料庫之效能指標。為了增加資料庫存取資料之效能,設計者會在資料庫之外架設了緩存群組設備(Cache Cluster)。緩存群組設備的功能在於將資料庫讀出的資料進行備份,當使用者下次欲對相同的資料進行讀取時,可以直接從緩存群組設備中讀取資料,因此可以降低資料被存取的時間。然而,當資料庫中的資料有所改變時,若使用者仍然透過緩存群組設備讀取資料,就有可能會讀取到過時的資料。
本發明一實施例提出一種任務執行方法,包含接收複數個任務,計算該些任務中的每一個任務之執行權限,並根據執行權限產生N個任務集合,其中N為大於1的整數,且N個任務集合中的每一個任務集合包含部分該些任務,執行N個任務集合中的其中一個任務集合所包含的部分該些任務中的其中至少一者。
本發明另一實施例提出一種任務調度系統,包含任務發送器以及第一工作機。任務發送器用以產生複數個任務,並發送該些任務。第一工作機耦接於任務發送器,第一工作機包含至少一個第一處理器。至少一個第一處理器接收該些任務並執行以下步驟:計算該些任務中的每一個任務之第一執行權限,並根據第一執行權限產生N個任務集合,其中N為大於1的整數,且N個任務集合中的每一個任務集合包含部分該些任務,執行N個任務集合中的第i個任務集合所包含的部分該些任務中的其中至少一者,其中i為正整數且1≦i≦N。
本發明之一或多個實施例提出一種任務調度系統以及任務執行方法。在本文中,「任務」可為任何將資料進行變更的程序。例如將資料無效化(Invalidate)、將資料進行轉碼(Codec Process)、或是將影音資料進行加密(Encryption)等等。在部分實施例中,本發明中的「任務」並沒有執行順序的限制,例如將資料無效化的任務或是將資料進行轉碼的任務,無論其順序,最終只要能達到將資料無效化或是將資料進行轉碼的目的即可。以下一或多個實施例中,將以資料無效化作為舉例,但應了解到本發明並不以此為限。
首先,請參閱第1圖,其為任務調度系統100之系統架構圖的一示例。如第1圖所示,任務調度系統100包含多個主機,例如工作機W 1、W 2至W N以及用來發送任務的主機裝置W。這些主機可透過網路(有線或無線)進行通訊。在部分實施例中,主機裝置W以及工作機W 1、W 2至W N可例如為電腦或伺服器(如網路儲存附加伺服器)。每一個主機裝置W以及工作機W 1、W 2至W N可包含處理器P、P 1、P 2至P N以及記憶體M、M 1、M 2至M N。處理器可為任何形式的處理元件,例如單晶片型處理器、微處理器、可程式化邏輯單元等等。單一工作機或主機裝置可包含多個處理器。記憶體亦可為任何具有儲存資料能力的裝置,例如隨機存取記憶體、非揮發性記憶體,磁碟機,快閃記憶體等等。在一實施例中,主機裝置W可作為網頁伺服器,但本發明不以此為限。
請繼續參閱第1圖,在部分實施例中,主機裝置W可將資料庫DB讀出的資料備份於快速緩衝儲存模組11中。當使用者下次欲對相同的資料進行讀取時,可以直接從快速緩衝儲存模組11中讀取資料,因此可以降低資料被存取的時間。然而,當資料庫DB中的資料有所改變時,如果所改變的資料在改變前有備份於快速緩衝儲存模組11中,則備份於快速緩衝儲存模組11中的舊資料就必須被無效化,以免使用者讀取到舊的或過時的資料。
因此,當資料庫DB中的資料有所改變時,主機裝置W就會產生「將快速緩衝儲存模組11中,所對應的資料無效化的任務」。應了解到,上述「將資料無效化的任務」只是舉例。在部分實施例中,主機裝置W可能接受到將快速緩衝儲存模組11所儲存的影片轉碼的指令,則此時的任務指的就是「將資料進行轉碼(Codec Process)的任務」。
如第1圖所示,主機裝置W還可包含任務發送器10以及任務調度器12,其中任務發送器10用以產生複數個任務,並發送該些任務,而任務調度器12用以將複數個任務調派至對應的工作機。在一實施例中,上述任務發送器10以及任務調度器12之間可藉由一或多個通信路徑來實現彼此通信或交換數據的功能。此外,在一實施例中,任務發送器10以及任務調度器12可藉由軟體實現,其中軟體可儲存於暫時或非暫時性電腦可讀寫式記憶體M中,並由一或多個處理單元執行(例如處理器P)。在另一些實施例中,任務發送器10以及任務調度器12可由硬體實現,例如處理器中的電路模組,或者軟體與硬體的組合而實現。應了解到,雖然圖1只繪示任務發送器10以及任務調度器12,但圖1只是舉例,記憶體M可儲存有比圖1所示更多的軟體,例如伺服器的作業系統。又,在部分實施例中,任務發送器10以及任務調度器12可實施於作業系統內,例如網路儲存附加(Network Attached Storage, NAS)伺服器作業系統。
請繼續參閱第1圖,當資料庫DB中的某些資料有所改變時,任務發送器10可產生複數個任務,並透過任務調度器12將複數個任務發送至複數個工作機W 1、W 2至W N,其中任務調度器12可決定各個工作機W 1、W 2至W N的任務執行權限。舉例而言,工作機W 1只會接收到對應工作機W 1之執行權限的任務t 1,1以及t 1,2。工作機W 2只會接收到對應工作機W 2之執行權限的任務t 2,1以及t 2,2。工作機W N只會接收到對應工作機W N之執行權限的任務t N,1以及t N,2。藉由工作機W 1、W 2至W N將快速緩衝儲存模組11的資料無效化,可避免使用者讀取到過時的資料。
然而,在某些情況下,工作機W 1、W 2至W N可能會有失能的情形,例如損毀或被移除。以工作機W 1為例說明,若工作機W 1失能,則工作機W 1所對應的任務t 1,1以及t 1,2將會無法被執行,導致使用者可能讀到過時的資料。
因此,任務調度器12必須持續地偵測或者獲得各個工作機W 1、W 2至W N的工作狀態,例如偵測或者獲得各個工作機W 1、W 2至W N是否失能的資訊。當任務調度器12偵測到其中一或多個工作機W 1、W 2至W N失能時,任務調度器12需將失能的工作機(例如工作機W 1)的任務重新分配至其餘可用的工作機。若任務調度器12無法持續地偵測各個工作機W 1、W 2至W N的工作狀態,就有可能讓使用者讀到過時的資料,導致整個系統的可靠度下降。此外,若任務調度器12本身失能,即單點失能(Single Point of Failure),則整個任務調度系統100可能會無法運作。
第2圖為本發明一實施例之任務調度系統200的架構圖。任務調度系統200與第1圖之不同在於,任務調度系統200中不包含任務調度器12。第2圖中的任務發送器10係將所有的任務分別發送給第2圖所繪示之各個工作機W 1至W N。換句話說,工作機W 1至W N中的各個工作機可自任務發送器10接收到所有的任務。因此,不會有第1圖中單點失能(Single Point of Failure)的問題。此外,工作機W 1至W N接收所有的任務後,工作機W 1至W N中的記憶體M 1至M N可緩存該些任務,而處理器P 1至P N可計算該些任務中的每一任務之執行權限。更具體而言,以工作機W 1為例,雖然工作機W 1接收了所有的任務,但其中只有部分任務會被工作機W 1執行,其餘的任務則會被其他工作機W 2至M N所執行。並且,由於每個工作機W 1至W N分別保有所有的任務,在其中一或多個工作機失能之後,其他工作機可重新計算該些任務中的每一任務之執行權限,因此具有容錯移轉(failover)的功效,增加整個任務調度系統的可靠度,例如確保使用者不會讀到過時的資料。接著,以下一或多個實施例將以N等於3為例說明任務調度系統200之各種任務調度狀況。
第3圖為本發明一實施例之任務調度系統200分派任務示意圖。為了清楚說明起見,第3圖省略繪示前述系統架構圖中的處理器P、P 1、P 2至P N、記憶體M、M 1、M 2至M N、資料庫DB、快速緩衝儲存模組11等元件。在第3圖的實施例中,工作機群組WG可為一種工作機的集合,在工作機群組WG內的工作機彼此為互相耦接的狀態,例如可以透過無線或有線的方式連接。在第3圖中,任務發送器10會產生任務t 1,1、t 1,2、t 2,1、t 2,2、t 3,1以及t 3,2。然而,本發明的任務發送器10不限於產生此六個任務,以上的任務表示方式僅為舉例。
在第3圖中,每一個工作機皆會接收複數個任務。例如,對工作機W 1而言,工作機W 1會接收到任務t 1,1、t 1,2、t 2,1、t 2,2、t 3,1以及t 3,2。工作機W 2會接收到任務t 1,1、t 1,2、t 2,1、t 2,2、t 3,1以及t 3,2。工作機W 3會接收到任務t 1,1、t 1,2、t 2,1、t 2,2、t 3,1以及t 3,2。也就是說,在本實施例中,任務調度系統200的每一台工作機並不會僅接收到對應自己執行權限的任務,而是會接收到任務發送器10所分派之所有的任務。
接著,如第4圖所示,每一個工作機會計算該些任務中的每一個任務之執行權限,並根據執行權限產生N個任務集合,且該N個任務集合中的每一任務集合包含部分該些任務,其中第4圖的N以3為例。舉例而言,每一台工作機接收到任務發送器10所發送的所有任務之後,每一台工作機的處理器會根據演算法,將接收到的任務分組,其中演算法可為任何資料定址的演算法。例如,每一台工作機可根據一致性雜湊演算法(Consistent Hash),計算該些任務中每一個任務對應的工作機執行權限(例如依據雜湊值,Hash Value),而將接收到的任務分組,而分組後的任務可視為任務集合。例如第4圖中,任務t 1,1、t 1,2對應於工作機W 1的執行權限,任務t 2,1、t 2,2對應於工作機W 2的執行權限,任務t 3,1、t 3,2對應於工作機W 3的執行權限。因此,任務t 1,1、t 1,2被歸類於對應於工作機W 1執行權限的任務集合TS 1,任務t 2,1、t 2,2被歸類於對應於工作機W 2執行權限的任務集合TS 2,任務t 3,1、t 3,2被歸類於對應於工作機W 3執行權限的任務集合TS 3
在一實施例中,任務集合內可包含部分任務發送器10所發送的所有任務(例如只有一個工作機的情形)。在另一實施例中,任務集合也可為空集合(沒有任何任務,例如有新增的工作機的情形)。此外,部分實施例中,這些任務集合可以使用任務佇列的形式堆疊,並遵循著先進先出的原則被執行。而本發明緩存任務的方式可為將記憶體切割為多個指定空間的記憶體區塊,以緩存任務集合中的任務。例如,三個工作機W 1至W 3會將不同工作機執行權限的任務集合緩存到對應的記憶體區塊中。例如工作機W 1會將任務集合TS 1內的任務緩存到對應任務佇列的記憶體區塊W 1TQ 1中,將任務集合TS 2內的任務緩存到對應任務佇列的記憶體區塊W 1TQ 2中,以及將任務集合TS 3內的任務緩存到對應任務佇列的記憶體區塊W 1TQ 3中。而工作機W 2以及工作機W 3之緩存任務的方式類似於工作機W 1,在此將不贅述。依此類推,當考慮N個工作機時,第i個工作機將具有N個任務集合,並且,第i個工作機會執行對應其執行權限之第i個任務集合內之至少一個任務,其中i為正整數且1≦i≦N。因此,在本實施例中,每一個工作機不僅儲存了本身執行權限的任務集合,還儲存了其餘工作機執行任務權限的任務集合。如此,當某些工作機加入或是失能時,工作機群組WG內之可用的工作機將可重新計算所有任務的執行權限,以使任務調度系統具備負載平衡以及自動修復任務的功能,並避免整個系統失能的情況發生。
在部分實施例中,由於在工作機群組WG內的工作機彼此為互相耦接的狀態,因此,任務調度系統200的每一個工作機均可偵測其餘工作機的有效狀態。例如,工作機群組WG內的工作機彼此可利用複數個回音訊號偵測工作機的有效狀態,或彼此利用其它的訊號週期性地偵測工作機的有效狀態。當某工作機的回音訊號消失時,即可判斷某個工作機被移除或是失能。或者,根據偵測到的回音訊號,判斷某個工作機被加入。然而,本發明不限定於使用回音訊號做為判斷工作機移除或加入的依據,本發明亦不限定移除或加入工作機的數量。並且,工作機群組WG內的每一台工作機將根據至少一個工作機的有效狀態,以決定是否重新計算該些任務中的每一個任務之執行權限。換句話說,在本實施例中,工作機群組WG內的每一台工作機將依據所有工作機的有效狀態,動態地決定每一個任務之執行權限,除了可以避免了整個系統失能的情況外,亦可以將每一個任務作最有效率的可適性配置。
接著,請一併參閱第4圖與第5圖,其中第4圖至第5圖之實施例係揭露了某個工作機失能後,任務調度系統的運作。在第4圖中,任務調度系統200中的每一個工作機不僅儲存了本身執行權限的任務集合,還儲存了其餘工作機執行任務權限的任務集合。在第5圖中,每一個工作機在偵測至少一個工作機失能後,會更新該些任務中的每一個任務之執行權限,並根據更新後的執行權限產生M個任務集合,其中M為小於等於(N-1)的正整數,以第5圖的實施例而言,原本有三個工作機W 1、W 2、W 3,因此N等於3。在偵測到工作機W 1失能後,產生2個任務集合,故M等於2。
更進一步而言,在第4圖中,原本對應工作機W 1之執行權限的任務集合TS 1包含了任務t 1,1、t 1,2。在工作機W 2偵測工作機W 1失能後,工作機W 2會更新該些任務t 1,1、t 1,2、t 2,1、t 2,2、t 3,1以及t 3,2中的每一個任務之執行權限,並產生2個新的任務集合,其中一個任務集合包含了對應工作機W 2之執行權限的任務t 2,1、t 2,2以及t 1,1,另一個任務集合包含了對應工作機W 3之執行權限的任務t 3,1、t 3,2以及t 1,2。換句話說,原本第4圖的三個任務集合TS 1至TS 3因為工作機W 1失能,故任務集合的數量將被縮減為兩個(因此,於本實施例中的M=2)。剩下可用的工作機W 2以及W 3將分別執行2個新的任務集合中的其中一個任務集合所包含的任務,而失能的工作機W 1之執行權限的任務集合TS 1的任務t 1,1、t 1,2,將會被分配到新的任務集合中而隨後被執行。因此,在本實施例中,就算是工作機W 1失能,由於每一個工作機不僅儲存了本身執行權限的任務,還儲存了其餘工作機執行任務權限的任務,因此可將所有任務之執行權限重新計算,可避免了因某些工作機失能而導致某些任務沒有被執行。
在本發明任務調度系統200的另外一實施例中,還可以將失能的工作機W 1所預定執行的任務集合刪除。例如,工作機W 1已經失能,剩下可用的工作機W 2、W 3中,可將工作機W 1執行權限所對應的記憶體區塊W 2TQ 1、W 3TQ 1刪除。藉由刪除不必要的記憶體空間,可提升記憶體使用率。
接著,請一並參閱第6圖至第11圖,其係根據本發明之部分實施例,揭露了某個工作機加入後,任務調度系統的運作。在第6圖中,每一個工作機W 2以及W 3不僅儲存了本身執行權限的任務集合,還儲存了其餘工作機執行任務權限的任務集合,例如工作機W 2不僅接收到屬於自己執行權限的任務t 2,7、t 1,5之外,還接收到了屬於工作機W 3執行權限的任務t 3,6、t 1,6。工作機W 3不僅接收到屬於自己執行權限的任務t 3,6、t 1,6之外,還接收到了屬於工作機W 2執行權限的任務t 2,7、t 1,5。在第7圖中,於工作機W 1加入後,工作機群組WG的工作機總數為3個。因此,工作機W 1會將記憶體分割為三個記憶體區塊W 1TQ 1、W 1TQ 2以及W 1TQ 3。用以預備緩存任務發送器10接下來所分配的所有任務。
接著,在第8圖中,當任務發送器10發送了4個任務t 2,8、t 3,7、t 1,7及t 1,8後,工作機W 1、W 2、W 3都會接收到任務t 2,8、t 3,7、t 1,7及t 1,8。對於工作機W 2以及工作機W 3而言,先前的任務t 2,7、t 1,5、t 3,6以及t 1,6之狀態不會有任何的更動,僅是將新的任務依據工作機執行權限緩存於對應的記憶體區塊中。換句話說,任務調度系統200在偵測至少一個工作機加入後,會更新該些任務中的每一任務之執行權限,並根據更新後的執行權限產生K個任務集合,其中K為大於或等於(N+1)的正整數,且K個任務集合中的每一個任務集合包含部分該些任務(第8圖中,K=3)。
以第8圖為例,工作機W 1可產生3個任務集合(K=3),任務集合TS 1包含任務t 1,7及任務t 1,8,任務集合TS 2包含任務t 2,8,任務集合TS 3包含任務t 3,7。任務集合TS 1可緩存於記憶體區塊W 1TQ 1中,任務集合TS 2可緩存於記憶體區塊W 1TQ 2中,任務集合TS 3可緩存於記憶體區塊W 1TQ 3中。
接著,在第9圖中,在新的工作機W 1加入後,新的工作機W 1也會緩存著任務發送器10所分派之所有的任務t 2,8、t 3,7、t 1,7及t 1,8。隨後,該些任務中的至少一個任務被至少一個工作機執行。例如,工作機W 1會執行對應於工作機W 1執行權限之任務t 1,7,工作機W 2會執行對應於工作機W 2執行權限之任務t 2,7,工作機W 3會執行對應於工作機W 3執行權限之任務t 3,6
接著,在第10圖中,在新的工作機W 1加入後,新的工作機W 1也會緩存著任務發送器10所分派之所有的任務t 2,8、t 3,7、t 1,7及t 1,8(可參閱第8圖)。之後,任務t 1,7、任務t 2,7及任務t 3,6會被執行(可參閱第9圖)。如前文之實施例所述,工作機W 1會將記憶體分割為三個記憶體區塊W 1TQ 1、W 1TQ 2以及W 1TQ 3,用以緩存任務發送器10接下來分配的所有任務。此外,其他的工作機亦可以執行類似的動作。舉例而言,具有記憶體區塊W 2TQ 2以及W 2TQ 3之工作機W2,在偵測到工作機W 1加入後,可以新增記憶體區塊W 2TQ 1,用以緩存之後任務發送器10發送之對應工作機W 1之執行權限的任務集合。類似地,工作機W 3在偵測到工作機W 1加入後,可以加入額外的記憶體區塊W 3TQ 1,用以緩存之後任務發送器10發送之對應工作機W 1之執行權限的任務集合。
接著,請參閱第11圖,在某些實施例中,N個任務集合中的其中一個任務集合所包含的部分該些任務中的其中至少一者會被至少一個工作機所執行。換句話說,在第11圖的實施例中,某些任務會被重複執行。例如,任務發送器10會發送任務t 1,9至每一個工作機W 1、W 2、W 3,且任務t 1,9的執行權限也將會被每一個工作機計算。若任務t 1,9的執行權限為工作機W 1,則任務t 1,9將會被緩存至每一個工作機中,對應工作機W 1的記憶體區塊中,諸如記憶體區塊W 1TQ 1、W 2TQ 1、W 3TQ 1。然而,如第11圖所示,對於工作機W 1而言,任務t 1,8屬於對應工作機W 1執行權限的任務集合,因此任務t 1,8將會被工作機W 1執行。對於工作機W 3而言,任務t 1,8屬於對應工作機W 3執行權限的任務集合,因此任務t 1,8也會被工作機W 3執行。換句話說,在任務發送器10所有分配的任務中,有可能因為工作機加入或是移除的緣故,所有分配的任務之執行權限將重新被計算,而導致某些任務可能重複被執行。然而,本發明所考慮的任務具有鑒一性(Idempotent)的特性。因此,少量的重複執行任務並不會影響任務調度系統200的執行效能,但能確保所有的任務都會被執行,以避免使用者讀取到過時的資料。
隨著任務發送器10不斷地發送任務,工作機內所緩存的任務數量也會越來越多。為了避免工作機內的記憶體發生記憶體不足的現象,任務調度系統200可以使用週期性更新的手段來清理記憶體內所緩存的資料。舉例而言,任務調度系統200內的工作機,可以週期性地於預定時間T 1,清除緩存於某個記憶體區塊中之一部分的任務。亦即,任務調度系統200可週期性地於預定時間T 1,檢查緩存於某個記憶體區塊中任務數量。假設任務數量超過一個限制(例如超過2倍預定時間內的平均任務數量),則將多餘的任務取消。另一種情況,當任務調度系統200的任務發送器10發送過多的任務,使工作機無法負荷處理任務的速度。此時,如第12圖所示,任務調度系統200可使用複數個工作機群組執行任務。不同於先前的實施例,第12圖的任務調度系統可使用兩個工作機群組WGA以及WGB執行任務。工作機群組WGA內具有工作機WA 1、工作機WA 2以及工作機WA 3。工作機群組WGB內具有工作機WB 1、工作機WB 2以及工作機WB 3。工作機群組WGA內的工作機設定參數與工作機群組WGB內的工作機設定參數均相同。任務發送器10會發送複數個任務至工作機群組WGA以及工作機群組WGB。因此,對於任務調度系統200而言,由於引入了另一組的工作機群組WGB,相當於將工作機的數量擴充,因此可緩和每一台工作機的負載。
第13圖為根據上述一或多個實施方式,所揭露之任務執行方法的流程圖。應了解到,上述實施例可包含第13圖所示之部分步驟,且各步驟的順序亦非侷限於本發明實施例的範疇。如圖所示,任務執行方法可包含以下步驟: <TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 步驟S100: </td><td> 接收複數個任務; </td></tr><tr><td> 步驟S102: </td><td> 計算該些任務中的每一個任務之執行權限,並根據執行權限 產生N個任務集合,其中N為大於1的整數,且N個任務集合中的每一個任務集合包含部分該些任務; </td></tr><tr><td> 步驟S104: </td><td> 執行N個任務集合中的其中一個任務集合所包含的部分該些任務中的其中至少一者; </td></tr><tr><td> 步驟S106: </td><td> 偵測工作機的有效狀態,若偵測至少一個工作機失能後,執行步驟S108,若偵測至少一個工作機加入後,執行步驟S112; </td></tr><tr><td> 步驟S108: </td><td> 更新該些任務中的每一個任務之執行權限,並根據更新後的 執行權限產生M個任務集合,其中M為小於等於(N-1)的正整數,且M個任務集合中的每一個任務集合包含部分該些任務; </td></tr><tr><td> 步驟S110: </td><td> 執行M個任務集合中的其中一個任務集合所包含的部分 該些任務中的其中至少一者。 </td></tr><tr><td> 步驟S112: </td><td> 更新該些任務中的每一個任務之執行權限,並根據更新後的 執行權限產生K個任務集合,其中K為大於或等於(N+1)的正整數,且K個任務集合中的每一個任務集合包含部分該些任務; </td></tr><tr><td> 步驟S114: </td><td> 執行K個任務集合中的其中一個任務集合所包含的部分 該些任務中的其中至少一者。 </td></tr></TBODY></TABLE>
綜上所述,本發明的任務調度系統具有自動修復任務功能及負載平衡功能。任務調度系統內的每一個工作機並不會僅接收到對應自己執行權限的任務,而是會接收到任務發送器所分派之所有的任務,並依據工作機的狀態而計算所有任務的執行權限,使每一個工作機都能獨立地建立對應不同工作機執行權限的任務集合。並且,這種任務分派的機制可在本身工作機中直接完成,兩工作機之間亦不需要進行任務資料的存取。此外,任務調度系統具備自我回復任務的功能,因此,當其它工作機發生異常時,可以利用本身緩存的任務資料來還原。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100及200‧‧‧任務調度系統
W1至WN、WA1至WA3、WB1至WB3‧‧‧工作機
P、P1至PN‧‧‧處理器
M、M1至MN‧‧‧記憶體
10‧‧‧任務發送器
11‧‧‧快速緩衝儲存模組
12‧‧‧任務調度器
W‧‧‧主機裝置
DB‧‧‧資料庫
t1,1、t1,2、t2,1、t2,2、t3,1、t3,2、t2,7、t1,5、t3,6、t1,6、t2,8、t3,7、t1,7、t1,8、及t1,9‧‧‧任務
WG、WGA及WGB‧‧‧工作機群組
TS1、TS2及TS3‧‧‧任務集合
W1TQ1、W1TQ2、W1TQ3、W2TQ1、W2TQ2、W2TQ3、W3TQ1、W3TQ2及W3TQ3‧‧‧記憶體區塊
S100至S114‧‧‧步驟
第1圖為任務調度系統之系統架構圖的一示例。 第2圖為本發明一實施例之任務調度系統的架構圖。 第3圖為本發明一實施例之任務調度系統的示意圖。 第4圖至第5圖,其係根據本發明之部分實施例,繪示某個工作機失能後,任務調度系統的運作。 第6圖至第11圖,其係根據本發明之部分實施例,繪示某個工作機加入後,任務調度系統的運作。 第12圖為本發明另一實施例之任務調度系統,其包含複數個工作機群組。 第13圖為本發明一實施例之任務執行方法的流程圖。
200‧‧‧任務調度系統
W1、W2至WN‧‧‧工作機
W‧‧‧主機裝置
P、P1、P2至PN‧‧‧處理器
M、M1、M2至MN‧‧‧記憶體
DB‧‧‧資料庫
10‧‧‧任務發送器
11‧‧‧快速緩衝儲存模組

Claims (14)

  1. 一種任務執行方法,包含:接收複數個任務;計算該些任務中的每一任務之一執行權限,並根據該執行權限於一工作機中產生N個任務集合,其中N為大於1的整數,且該N個任務集合中的每一任務集合包含部分該些任務;以及執行該N個任務集合中的其中一個任務集合所包含的部分該些任務中的其中至少一者。
  2. 如請求項1所述之方法,還包含:偵測至少一工作機的有效狀態,並根據該至少一工作機的有效狀態,決定是否重新計算該些任務中的每一任務之該執行權限。
  3. 如請求項1所述之方法,還包含:偵測至少一工作機失能後,更新該些任務中的每一任務之該執行權限,並根據更新後的該執行權限產生M個任務集合,其中M為小於等於(N-1)的正整數,且該M個任務集合中的每一任務集合包含部分該些任務;以及執行該M個任務集合中的其中一個任務集合所包含的部分該些任務中的其中至少一者。
  4. 如請求項3所述之方法,其中偵測該至少一工作機失能,並根據更新後的該執行權限產生M個任務集合的步驟還包含:刪除至少一任務集合,其中被刪除之該任務集合為失能的該至少一工作機所預定執行的。
  5. 如請求項1所述之方法,還包含:偵測至少一工作機加入後,更新該些任務中的每一任務之該執行權限,並根據更新後的該執行權限產生K個任務集合,其中K為大於或等於(N+1)的正整數,且該K個任務集合中的每一任務集合包含部分該些任務;以及執行該K個任務集合中的其中一個任務集合所包含的部分該些任務中的其中至少一者。
  6. 如請求項5所述之方法,其中該些任務中的至少一任務被該至少一工作機執行。
  7. 如請求項6所述之方法,其中該N個任務集合中的其中一個任務集合所包含的部分該些任務中的其中該至少一者亦被該至少一工作機所執行。
  8. 一種任務調度系統,包含:一任務發送器,用以產生複數個任務,並發送該些任務;以及一第一工作機,耦接於該任務發送器,該第一工作機包含至少一第一處理器,且該至少一第一處理器執行以下步驟:計算該些任務中的每一任務之一第一執行權限,並根據該第一執行權限產生N個任務集合,其中N為大於1的整數,且該N個任務集合中的每一任務集合包含部分該些任務;以及執行該N個任務集合中的第i個任務集合所包含的部分該些任務中的其中至少一者,其中i為正整數且1≦i≦N。
  9. 如請求項8所述之任務調度系統,還包含:一第二工作機,耦接於該任務發送器,該第二工作機包含至少一第二處理器,該至少一第二處理器接收該些任務並執行以下步驟:根據該演算法計算該些任務中的每一任務之一第二執行權限,並根據該第二執行權限產生N個任務集合,其中N為大於2的整數,且該N個任務集合中的每一任務集合包含部分該些任務;以及執行該N個任務集合中的第j個任務集合所包含的部分該些任務中的其中至少一者,其中j為正整數且1≦i≦N,i≠j。
  10. 如請求項9所述之任務調度系統,其中該第一工作機週期性地偵測該第二工作機的有效狀態。
  11. 如請求項10所述之任務調度系統,當該第一工作機偵測該第二工作機失能後,該第一處理器執行以下步驟:根據該演算法更新該些任務中的每一任務之該第一執行權限,並根據更新後的該執行權限產生M個任務集合,其中M為小於等於N-1的正整數,且該M個任務集合中的每一任務集合包含部分該些任務;以及執行該M個任務集合中的其中一個任務集合所包含的部分該些任務中的其中至少一者。
  12. 如請求項10所述之任務調度系統,該第一處理器還執行以下步驟:刪除對應該第二工作機之該第二執行權限之一任務集合,其中該被刪除之該任務集合為失能的該第二工作機所預定執行的。
  13. 如請求項8所述之任務調度系統,其中該第一工作機偵測一第三工作機加入後,該第一處理單元執行以下步驟:根據該演算法更新該些任務中的每一任務之該執行權限,並根據更新後的該執行權限產生K固任務集合,其中K為大於或等於(N+1)的正整數,且該K個任務集合中的每一任務集合包含部分該些任務;以及執行該K個任務集合中的其中一個任務集合所包含的部分該些任務中的其中至少一者。
  14. 如請求項8所述之任務調度系統,還包含:一快速緩衝儲存模組,耦接於該第一工作機,用以儲存資料;其中該資料依據該第i個任務集合所包含的部分該些任務中的其中至少一者被處理。
TW105128326A 2016-09-02 2016-09-02 任務執行方法及任務調度系統 TWI608360B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW105128326A TWI608360B (zh) 2016-09-02 2016-09-02 任務執行方法及任務調度系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105128326A TWI608360B (zh) 2016-09-02 2016-09-02 任務執行方法及任務調度系統

Publications (2)

Publication Number Publication Date
TWI608360B true TWI608360B (zh) 2017-12-11
TW201810067A TW201810067A (zh) 2018-03-16

Family

ID=61230831

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105128326A TWI608360B (zh) 2016-09-02 2016-09-02 任務執行方法及任務調度系統

Country Status (1)

Country Link
TW (1) TWI608360B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110049350A (zh) * 2019-04-15 2019-07-23 深圳壹账通智能科技有限公司 视频转码处理方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI439940B (zh) * 2007-01-30 2014-06-01 Alibaba Group Holding Ltd A Distributed Task System and Distributed Task Management Method
US20140373091A1 (en) * 2013-04-10 2014-12-18 Illumio, Inc. Distributed Network Security Using a Logical Multi-Dimensional Label-Based Policy Model
CN104598425A (zh) * 2013-10-31 2015-05-06 中国石油天然气集团公司 一种通用多机并行计算方法及系统
CN104838354A (zh) * 2012-11-30 2015-08-12 惠普发展公司,有限责任合伙企业 运行代理以在云系统中执行自动化任务
CN105074686A (zh) * 2013-01-24 2015-11-18 华美宏道公司 用于创建和共享任务的系统和方法
TW201608387A (zh) * 2014-08-26 2016-03-01 Chunghwa Telecom Co Ltd 用於即時運算平台可多人共享及動態加卸載之任務分派器與方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI439940B (zh) * 2007-01-30 2014-06-01 Alibaba Group Holding Ltd A Distributed Task System and Distributed Task Management Method
CN104838354A (zh) * 2012-11-30 2015-08-12 惠普发展公司,有限责任合伙企业 运行代理以在云系统中执行自动化任务
CN105074686A (zh) * 2013-01-24 2015-11-18 华美宏道公司 用于创建和共享任务的系统和方法
US20140373091A1 (en) * 2013-04-10 2014-12-18 Illumio, Inc. Distributed Network Security Using a Logical Multi-Dimensional Label-Based Policy Model
CN104598425A (zh) * 2013-10-31 2015-05-06 中国石油天然气集团公司 一种通用多机并行计算方法及系统
TW201608387A (zh) * 2014-08-26 2016-03-01 Chunghwa Telecom Co Ltd 用於即時運算平台可多人共享及動態加卸載之任務分派器與方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110049350A (zh) * 2019-04-15 2019-07-23 深圳壹账通智能科技有限公司 视频转码处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
TW201810067A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
US7685367B2 (en) Multi-cache cooperation for response output caching
US9330108B2 (en) Multi-site heat map management
EP3387558B1 (en) Server-based persistence management in user space
JP7034806B2 (ja) 分散ストレージネットワークにおけるデータ経路モニタリング
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US20210294536A1 (en) Tiering Data Strategy for a Distributed Storage System
KR102051282B1 (ko) 선택적 리소스 이동을 이용하는 네트워크 결합 메모리
US20220166690A1 (en) Distributed workload reassignment following communication failure
US10970190B2 (en) Hybrid log viewer with thin memory usage
US9378218B2 (en) Apparatus and method for enabling clients to participate in data storage in distributed file system
US10049036B2 (en) Reliable distributed messaging using non-volatile system memory
US11809707B2 (en) File operations in a distributed storage system
US20190163493A1 (en) Methods, systems and devices for recovering from corruptions in data processing units
JP2010231502A (ja) ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム
CN105095495A (zh) 一种分布式文件系统缓存管理方法和系统
US20170168956A1 (en) Block cache staging in content delivery network caching system
WO2015125271A1 (ja) ファイルサーバ、その制御方法、およびストレージシステム
TWI608360B (zh) 任務執行方法及任務調度系統
WO2008058898A1 (en) Throttling an asynchronous remote copying system
JP2018010495A (ja) 情報処理装置、情報処理プログラムおよび情報処理システム
US11921683B2 (en) Use of time to live value during database compaction
US20170147518A1 (en) Scanning memory for de-duplication using rdma
WO2014188515A1 (ja) ストレージシステムおよびストレージシステムの制御方法
Shahapure et al. Replication: A technique for scalability in cloud computing
US10528426B2 (en) Methods, systems and devices for recovering from corruptions in data processing units in non-volatile memory devices

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees