新四季網

容錯的批量處理的製作方法

2023-10-09 20:55:59

專利名稱:容錯的批量處理的製作方法
技術領域:
此描述涉及以容錯方式處理批量的數據。
背景技術:
複雜的計算通常可以表示為有向圖(稱為「數據流程圖(daaflow graph) 」),其中計算的各組成部分與圖的節點(或頂點)相關聯並且各組成部分之間的數據流對應於圖的各節點之間的鏈路(link)(或,弧(arc)、邊緣(edge))。組成部分包括處理數據的數據處理組成部分和用作數據流的源(source)或接收器(sink)的組成部分。各數據處理組成部分形成可以並發地處理多級的數據的流水線系統。美國專利5,966,072,EXE⑶TING COMPUTATIONS EXPRESSED AS GRAPHS 中描述了實施這種基於圖的計算(graph-based computation)的系統。在某些情況下,將基於圖的計算配置為接收輸入數據的流並且處理連續的數據流以便無限地提供來自一個或更多個組成部分的結果,直到計算關閉為止。在某些情況下,將基於圖的計算配置為接收批量的輸入數據並且處理批量的數據以提供對於此批量的結果。然後在已經處理了該批量之後關閉或返回到空閒的狀態。

發明內容
在一方面,總體上,用於以容錯方式處理批量輸入數據的方法包括從一個或更多個數據源讀取包括多個記錄的批量輸入數據;以及使所述批量經過包括由鏈路連接的代表組成部分的兩個或更多個節點的數據流程圖,所述鏈路代表各組成部分之間的數據的流, 其中,至少一個但少於全部的組成部分包括檢查點處理,用於針對與一個或更多個記錄相關聯的數個工作單元中的每一個執行的動作。所述檢查點處理包括在針對批量的處理開始時,打開非易失性存儲器中存儲的檢查點緩存;以及對於來自所述批量的每個工作單元, 如果由於對工作單元執行所述動作所產生的結果在之前被保存在檢查點緩存中,則使用所保存的結果完成工作單元的處理而不再次執行所述動作,或者如果由於對工作單元執行所述動作所產生的結果未被保存在檢查點緩存中,則執行所述動作以完成工作單元的處理並且將由於執行所述動作所產生的結果保存在檢查點緩存中。一些方面可以包括下列特徵中的一個或更多個。所述動作包括與遠程伺服器通信。由於執行所述動作所產生的結果包括由於用於工作單元的與遠程伺服器的通信所產生的信息。所述方法進一步包括在完成所述批量的處理時刪除檢查點緩存。與遠程伺服器的通信被收費。與遠程伺服器的通信的結果存儲在易失性存儲器中,並且在發生觸發事件時按組保存至檢查點緩存。所述觸發事件是來自檢查點管理器的信號。 所述觸發事件是自從上次寫至檢查點緩存時起記錄的數目的處理。
所述觸發事件是自上次寫至檢查點緩存時起時間段的經過。包括檢查點處理的組成部分並行地在多個處理設備上運行。數據記錄在多個並行處理設備之中的分配在批量的運行之間是一致的,並且每個處理設備保持獨立的檢查點緩存。數據記錄在多個並行處理設備之中的分配是動態的,並且處理設備共享對於所共享的非易失性存儲器中存儲的單個檢查點緩存的訪問,其中對於檢查點緩存的寫入由檢查點管理器控制。所述方法進一步包括在已經發生錯誤狀況時,重新開始數據流程圖中的所有組成部分;從一個或更多個數據源讀取包括多個記錄的批量輸入數據;以及使整個批量經過數據流程圖。所述動作包括與遠程伺服器通信。在另一方面,總體上,計算機可讀介質存儲用於以容錯方式處理批量輸入數據的電腦程式。該電腦程式包括指令,所述指令使得計算機從一個或更多個數據源讀取包括多個記錄的批量輸入數據;以及使所述批量經過包括由鏈路連接的代表組成部分的兩個或更多個節點的數據流程圖,所述鏈路代表各組成部分之間的數據的流,其中,至少一個但少於全部的組成部分包括檢查點處理,用於針對與一個或更多個記錄相關聯的數個工作單元中的每一個執行的動作。所述檢查點處理進一步包括在針對批量的處理開始時,打開非易失性存儲器中存儲的檢查點緩存;以及對於來自所述批量的每個工作單元,如果由於對工作單元執行所述動作所產生的結果在之前被保存在檢查點緩存中,則使用所保存的結果完成工作單元的處理而不再次執行所述動作,或者如果由於對工作單元執行所述動作所產生的結果未被保存在檢查點緩存中,則執行所述動作以完成工作單元的處理並且將由於執行所述動作所產生的結果保存在檢查點緩存中。在另一方面,總體上,用於以容錯方式處理批量輸入數據的系統包括用於從一個或更多個數據源讀取包括多個記錄的批量輸入數據的部件;以及用於使所述批量經過包括兩個或更多個節點的數據流程圖的部件,所述節點代表由鏈路連接的組成部分,所述鏈路代表各組成部分之間的數據的流,其中,至少一個但少於全部的組成部分包括檢查點處理, 用於針對與一個或更多個記錄相關聯的數個工作單元中的每一個執行的動作。所述檢查點處理包括在針對批量的處理開始時,打開非易失性存儲器中存儲的檢查點緩存;以及對於來自所述批量的每個工作單元,如果由於對工作單元執行所述動作所產生的結果在之前被保存在檢查點緩存中,則使用所保存的結果完成工作單元的處理而不再次執行所述動作,或者如果由於對工作單元執行所述動作所產生的結果未被保存在檢查點緩存中,則執行所述動作以完成工作單元的處理並且將由於執行所述動作所產生的結果保存在檢查點緩存中。一些方面可以包括下列優點中的一個或更多個可以消除對於數據流程圖中不同組成部分之間的一些檢查點有關通信的需要。可以選擇性地避免在錯誤恢復期間在多級批量處理中重複複雜和高成本的步驟,而沒有實施整個流水線的系統的檢查點的複雜性和花費。例如,通過避免對於收費服務的重複調用,此方法可以用於省錢。本發明的其它特徵和優點將根據下面的描述並且根據權利要求書而變得明顯。


圖1是具有輸入/輸出檢查點的批量數據處理系統的方框示圖。圖2是檢查點處理的流程圖。圖3是具有擁有並行性的輸入/輸出檢查點的批量數據處理系統的方框示圖。圖4是具有擁有並行性的輸入/輸出檢查點的批量數據處理系統和檢查點管理器的方框示圖。
具體實施例方式基於圖的數據處理系統可以配置為以容錯(fault tolerant)方式處理批量的輸入數據,其包含將數據流程圖中的一個組成部分的中間結果保存至緩存(buffer),其中它們可以從該緩存中檢索到並且在錯誤狀況強制批量輸入數據的處理的重新啟動的情況下被重新使用。圖1是示例性的數據處理系統100的方框示圖。數據經過數據流程圖的數據處理組成部分的序列,所述數據流程圖處理從一個或更多個數據源(data source)至一個或更多個數據接收器(data sink)的數據流。數據流程圖中的各種數據處理組成部分中的任何一個均可以通過在單獨的處理設備上運行的處理而加以實施,或者數個數據處理組成部分可以通過在單個處理設備上運行的一個或更多個處理而加以實施。可以按批量處理數據, 其標識要由系統100處理的一組輸入數據記錄。系統100對於批量數據的處理可以通過用戶輸入或者某種其它事件(如,定時器的到期)而啟動。當開始批量數據的處理時,從一個或更多個輸入數據源讀取輸入數據記錄。例如,從諸如數據存儲組成部分110表示的計算機可讀存儲器件上存儲的一個或更多個文件讀取輸入數據。也可以從諸如數據存儲組成部分112表示的伺服器上運行的資料庫讀取輸入數據記錄。結合組成部分120按順序從數個數據源讀取數據(例如,記錄),並且將輸入數據安排為一序列的離散工作單元(work unit)。工作單元例如可以代表基於輸入記錄以預定格式存儲的記錄,或者例如可以代表要處理的事務(transaction)。在某些實施方案中,每個工作單元可以由批量內唯一的編號(如,處理的工作單元的計數)來標識。然後按順序將工作單元傳給數據流程圖中的下一組成部分。實施系統100的示例性數據流程圖還包括數據處理組成部分130和140。數據處理組成部分130包括檢查點處理,其在批量處理過程期間將關於其處理的狀態信息有規律地保存至非易失性存儲器。當出現錯誤狀況並且必須重新啟動批量時,檢查點的組成部分 130訪問所存儲的狀態信息以降低在批量的重複運行期間必須重複的處理的量。由此,檢查點以使用非易失性存儲器資源和向數據處理組成部分130添加複雜性為代價提供了容錯。 數據處理組成部分140是沒有檢查點的組成部分。其它數據流程圖可以包括更多或更少的數據處理組成部分。可以將所需要那麼多的數據處理組成部分配置為包括檢查點處理。 典型地,將在延遲或某些其它度量方面具有高成本的組成部分配置為包括檢查點處理,從而在錯誤狀況的情況下,無需針對批量中的所有工作單元重複系統100中的高成本處理步馬聚ο數據處理組成部分130包括訪問遠程伺服器150的步驟。對於處理的每個工作單元,第一處理組成部分130將把請求發送至遠程伺服器150並且接收來自該遠程伺服器的結果(例如,來自資料庫的數據)。這種操作出於各種原因而可能是高成本的,所述各種原因包括在與遠程伺服器通信時經歷的網絡延遲或者遠程控制器提供的服務的收費。在接收到結果後,組成部分130為下一數據處理組成部分140產生輸出。由於此組成部分130 已配置為包括檢查點處理,其通過將工作單元的輸出傳遞至下一數據處理組成部分140並且開始下一工作單元的處理,以保存來自遠程伺服器150的結果作為完成處理之前的處理狀態信息的一部分。處理狀態信息可以暫存在運行檢查點處理的處理設備上的易失性存儲器中。以有規律的時間將一個或更多個工作單元的處理狀態信息寫入至非易失性存儲器中所存儲的檢查點緩存,從而其稍後在錯誤狀況的情況下是可用的。隨著工作單元通過數據流程圖的各數據處理組成部分,與每個工作單元相關聯的最終結果被傳輸至數據接收器160。可以單獨地傳輸工作單元,或者在某些實施方案中, 工作單元可以用於遞增地更新最終結果,或者可以在最終結果傳輸至數據接收器160之前 (例如,按隊列)予以累積。數據接收器160可以是存儲工作單元或者基於工作單元的一些累積輸出的數據存儲組成部分,例如,或者數據接收器160可以是工作單元被公布到的隊列或者用於接收最終結果的某些其它類型的接收器。批量處理在批量中的所有工作單元的結果已被傳輸至數據接收器160時結束。此時,可終止數據流程圖中的組成部分。與檢查點的組成部分相關聯的檢查點處理可以刪除其檢查點緩存作為其終止例程的一部分。圖2是用於對檢查點的組成部分進行檢查點的示例性處理200的流程圖。例如, 一旦來自於通過數據流程圖實施批量處理的軟體的外部調用時,處理200啟動201。啟動可以包括為檢查點的組成部分在其上運行的處理設備上的處理200分配易失性存儲器, 並且保留任何其它所需要的資源。處理200接著檢查205是否已經將與此處理相關聯的檢查點緩存保存在非易失性存儲器中。如果不存在檢查點緩存,則在非易失性存儲器中創建 207新的檢查點緩存。如果之前存儲了檢查點緩存,則其被打開208。打開208檢查點緩存可以包括發現非易失性存儲器中檢查點緩存的位置,或者可能將檢查點緩存的所有或一部分複製到處理設備上的易失性存儲器。在用於應對每個工作單元的循環開始時,從數據流程圖中的之前組成部分或者從源接收210與工作單元相關聯的輸入數據。可選地,對工作單元進行預處理220。預處理 220例如可包括重新格式化數據記錄,或者確定可用於針對與工作單元相關聯的結果搜索檢查點緩存的值。檢查點處理200的檢查點緩存被檢查225以(例如,根據被中斷的批量的之前處理)確定此工作單元的結果是否存儲在檢查點緩存中。如果相關聯的結果未存儲在檢查點緩存中,則對工作單元進行包括高成本動作的處理230。高成本動作的示例可包括通過網絡訪問遠程伺服器上的資源並且遭遇顯著的延遲或收取費用。然後將此處理的結果存儲240在檢查點緩存中。例如可以使用遞增計數器將此結果與正在處理的工作單元相關聯,所述遞增處理器可以通過相同的計數器值標識工作單元和其相關聯的結果。該結果可以直接寫入至非易失性存儲器,或者可以暫時緩存在易失性存儲器中,直到觸發事件使得其被複製至非易失性存儲器為止。示例性的觸發事件包括處理固定數量的工作單元、經過的時間段或者來自外部處理的信號。如果相關聯的結果存儲在檢查點緩存中,則從檢查點緩存中檢索250該結果。可選地,進行後處理沈0以完成工作單元的處理。後處理260例如可以包括重新格式化數據或者將數據傳遞至數據流程圖中的下一組成部分。在工作單元的處理完成後,檢查點處理200接著檢查270是否另一工作單元有待處理。如果另一工作單元是可用的, 則檢查點處理200循環回至讀取與下一工作單元相關聯的輸入數據。當沒有更多的工作單元有待處理時,工作點處理200等待280指示批量處理已經完成並且指令其終止的外部信號。當接收到終止信號時,檢查點處理200在完成其終止序列290之前從非易失性存儲器中刪除285其檢查點緩存。完成終止序列290可以包括釋放處理設備或其它保留的資源上的易失性存儲器。圖3是示例性的數據處理系統300的方框示圖,其中實施系統300的數據流程圖包括具有分布式檢查點處理的並行組成部分。數據流程圖中的一個或更多個組成部分可以並行地運行在數個處理設備(例如,數個計算機或並行處理器的處理器核或數個處理器) 上。在此示例中,明確地描繪了檢查點並行組成部分的數個實例331、332和333。並行組成部分的實例運行在每個處理設備上,並且每個實例處理批量的工作單元的子集。在分布式檢查點辦法的此示例中,針對並行組成部分的三個實例中的每一個運行不同的檢查點處理。當開始批量數據的處理時,從一個或更多個輸入數據源讀取輸入數據記錄。例如, 可以從諸如數據存儲組成部分310表示的計算機可讀存儲設備上存儲的一個或更多個文件讀取輸入數據。也可以從在諸如數據存儲組成部分312表示的伺服器上運行的資料庫讀取輸入數據記錄。結合組成部分320按順序從數個數據源讀取數據,並且將輸入數據安排到一序列的離散工作單元。工作單元按順序傳遞至數據流程圖中的下一組成部分。由於數據流程圖中的下一數據處理組成部分是並行組成部分,因此工作單元由數據單元分割組成部分330分割並分配至數個組成部分實例。在此示例中,工作單元在各實例之中的分配在不同的批量處理運行之間一致(consistent),從而各實例無需訪問被分配給其它實例的工作單元的狀態信息。在出現錯誤狀況並且需要再次運行批量時,工作單元分割組成部分330基於利用一致的結果可重複的一致算法,將工作單元分配至特定的實例。例如,工作單元分配分割組成部分330繼而可以只是將工作單元每次一個地分配給每個組成部分實例,在工作單元計數超過並行實例的數目時循環至第一實例。在另一示例中, 工作單元分割組成部分330可以應用這樣的分割算法其未保證在運行之間產生一致分配並且將分配信息保存至非易失性存儲器,從而在需要批量的重複運行的情況下可以重複相同的分配。檢查點並行組成部分的每個實例331、332和333使用結合圖1的檢查點組成部分130所描述的方法,獨立地處理向其分配的工作單元。每個實例331、332和333在非易失性存儲器中創建並保持其自身的檢查點緩存。當處理了工作單元時,實例檢查其自身的檢查點緩存以確定之前是否已經在批量的先前運行期間處理了工作單元。在示例性的系統 300中,檢查點的並行組成部分包括與遠程伺服器350通信以獲取每個工作單元的信息的動作。在其它示例中,檢查點並行組成部分可以包括具有與其相關聯的高成本的其它動作, 其為容錯判斷檢查點緩存的維護(maintenance)。當工作單元的處理結束時,將結果傳遞至聚集組成部分338,該聚集組成部分338 收集來自數個實例的結果並且將它們傳遞至數據流程圖中的下一數據處理組成部分。數據處理組成部分340是沒有檢查點的組成部分。在其它示例中,數據流程圖中的任何數目的組成部分均可以包括檢查點。在某些情況下,將檢查點處理限制到進行高成本動作的組成部分是有益的。其它數據流程圖可以包括更多或更少的數據處理組成部分, 其對於任何給定的數據處理組成部分具有或沒有並行性(parallelism)。隨著工作單元通過數據流程圖的各組成部分,與每個工作單元相關聯的最終結果被傳輸至數據接收器360。批量處理在批量中的所有工作單元的結果已被傳輸至數據接收器360時結束。此時,可終止數據流程圖中的各組成部分相關聯的處理。給定實例的檢查點處理可以刪除其檢查點緩存作為其終止例程的一部分。圖4是示例性的數據處理系統400的方框示圖,其中實施系統400的數據流程圖包括具有集中式檢查點處理的並行組成部分。在此示例中,明確地描繪了檢查點並行組成部分的數個實例431、432和433。並行化的組成部分的實例運行在每個處理設備上,並且每個實例處理批量的工作單元的子集。在集中式檢查點辦法的此示例中,檢查點管理器436 應對與並行組成部分的三個實例中的每一個通信的至少一些檢查點處理。可以在運行並行組成部分的實例的各處理設備中的一個處理設備上或者在單獨的處理設備上運行檢查點管理器436。當開始批量數據的處理時,從數據存儲組成部分410和412讀取輸入數據記錄。結合組成部分420按順序從數個數據源讀取數據,並且將輸入數據安排到所存儲的一序列的離散工作單元。然後將工作單元按順序傳遞至數據流程圖中的下一組成部分,其在此示例中是檢查點並行組成部分。在圖4的示例中,檢查點管理器436控制對於由實例431、432和433 (其每一個均運行在不同的處理設備上)共享的單個檢查點緩存的訪問。對於批量中的所有工作單元共享單個檢查點緩存允許將工作單元動態地分配至各實例,而不需要從批量的之前運行匹配分配。共享的檢查點緩存存儲在所有的實例可以經由總線或通信網絡直接地、或者經由與檢查點管理器436的通信間接地訪問的所共享的非易失性存儲器435上。實例431、432、433 可以在它們處理工作單元時讀取所共享的非易失性存儲器435以檢查檢查點緩存。如果在檢查點緩存中發現當前工作單元的結果,則所存儲的結果用以避免重複高成本動作。如果在檢查點緩存中未發現當前工作單元的結果,則執行工作單元的動作並且將結果存儲在檢查點緩存中。為了寫入至檢查點緩存,實例431、432、433將寫請求消息發送至檢查點管理器436。檢查點管理器436然後向共享的非易失性存儲器435寫入以更新檢查點緩存。在可替換的實施例中,檢查點管理器436將記號(token)發送至給出向共享的非易失性存儲器435寫入的許可的請求實例,以便更新檢查點緩存。由於所有的實例431、432、433使用共享的檢查點緩存,因此在批量數據的每一運行期間,工作單元分割組成部分430可以以不同的方式在各實例之間動態地分配工作單元。例如,工作單元分割組成部分430可以基於運行時在每個處理設備上的可用容量(其可能在運行之間變化)動態地分配每個工作單元。這種方法還允許工作單元分割組成部分 430使用不同數量的並行實例。例如,在錯誤狀況之後,運行並行組成部分的實例(例如,實例43 的處理設備之一可以被禁止或者不可用。在批量重新啟動的這種情況下,工作單元分割組成部分430可以將所有的工作單元分配至剩餘的實例431、432,其可以無縫地訪問由禁止的實例433之前處理的工作單元的檢查點緩存入口。檢查點管理器436可以由在單獨的處理設備上運行的處理來實施,或者其可以由在運行並行組成部分的實例的處理設備之一上運行的處理來實施。在檢查點緩存更新事件之間,實例431、432、433可以將檢查點緩存更新緩存在本地的易失性存儲器中。檢查點管理器436可以將信號發送至實例,其觸發實例以易失性存儲器中緩存的任何信息開始檢查點緩存更新。當工作單元的處理完成時,將結果傳遞至聚集組成部分438,該聚集組成部分438 收集來自數個實例的結果並且將它們傳遞至數據流程圖中的下一數據處理組成部分。數據處理組成部分440是沒有檢查點的組成部分。在其它示例中,數據流程圖中的任何數量的組成部分可以包括檢查點。在某些情況下,將檢查點處理限制到要進行高成本動作的組成部分是有益的。其它數據流程圖可以包括更多或更少的處理組成部分,其對於任何給定的數據處理組成部分具有或沒有並行性(parallelism)。隨著工作單元通過數據流程圖的各組成部分,與每個工作單元相關聯的最終結果被傳輸至數據接收器460。批量處理在批量中的所有工作單元的結果已被傳輸至數據接收器460時結束。此時,可終止數據流程圖中的組成部分。檢查點管理器436可以刪除檢查點緩存作為其終止例程的一部分。上面描述的容錯批量處理辦法可以通過使用用於在計算機上運行的軟體來實施。 例如,軟體將過程形成在一個或更多個電腦程式中,所述程序運行在一個或更多個編程的或可編程的計算機系統(其可以是諸如分布式、客戶端/伺服器或網格(grid)之類的各種架構)上,每個計算機系統包括至少一個處理器、至少一個數據存儲系統(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備或埠和至少一個輸出設備或埠。 軟體例如可以形成更大程序的一個或更多個模塊,其提供計算圖(computation graph)的配置和設計有關的其它服務。圖的節點和要素可以實施為計算機可讀介質中所存儲的數據結構或者遵循數據倉庫(data repository)中存儲的數據模型的其它有組織的數據。可以將軟體提供在可由通用或專用可編程計算機讀取的CD-ROM之類的存儲介質上,或者經由網絡的通信介質輸送(以傳播的信號編碼)至其被運行的計算機。可以在專用的計算機上或者使用專用硬體(如,協處理器)執行所有的功能。可以以由不同的計算機執行軟體所指定的計算的不同部分的分布式方式實施軟體。最好將每個這種電腦程式存儲於或者下載至可由通用或專用可編程計算機讀取的存儲介質或器件(例如,固態存儲器或介質,或者磁或光介質),用於在計算機系統讀取存儲介質或器件時配置和操作計算機以執行在此描述的過程。還可以考慮將本發明的系統實施為以電腦程式配置的計算機可讀存儲介質,其中如此配置的存儲介質使得計算機系統以特定和預定義的方式工作以執行在此描述的功能。已經描述了本發明的多個實施例。然而,要理解的是,在不脫離本發明精神和範圍的情況下可以進行各種變型。例如,上面描述的步驟中的一些可以是有序獨立的,由此可以以與描述的順序不同的順序加以執行。要理解,前面的描述旨在說明而不是要限制本發明的範圍,本發明的範圍由所附權利要求書的範圍限定。例如,可以在實質上不影響總體處理的情況下以不同的順序執行上面描述的多個功能步驟。其它實施例在所附權利要求書的範圍內。
權利要求
1.一種用於以容錯方式處理批量輸入數據的方法,該方法包括從一個或更多個數據源讀取包括多個記錄的批量輸入數據;以及使所述批量經過包括由鏈路連接的代表組成部分的兩個或更多個節點的數據流程圖, 所述鏈路代表各組成部分之間的數據的流,其中,至少一個但少於全部的組成部分包括檢查點處理,用於針對與一個或更多個記錄相關聯的數個工作單元中的每一個執行的動作;其中,所述檢查點處理包括在針對批量的處理開始時,打開非易失性存儲器中存儲的檢查點緩存;以及對於來自所述批量的每個工作單元,如果由於對工作單元執行所述動作所產生的結果在之前被保存在檢查點緩存中,則使用所保存的結果完成工作單元的處理而不再次執行所述動作,或者如果由於對工作單元執行所述動作所產生的結果未被保存在檢查點緩存中, 則執行所述動作以完成工作單元的處理並且將由於執行所述動作所產生的結果保存在檢查點緩存中。
2.如權利要求1所述的方法,其中,所述動作包括與遠程伺服器通信。
3.如權利要求2所述的方法,其中,由於執行所述動作所產生的結果包括由於用於工作單元的與遠程伺服器的通信所產生的信息。
4.如權利要求1所述的方法,進一步包括在完成所述批量的處理時刪除檢查點緩存。
5.如權利要求2所述的方法,其中,與遠程伺服器的通信被收費。
6.如權利要求2所述的方法,其中,與遠程伺服器的通信的結果存儲在易失性存儲器中,並且在發生觸發事件時按組保存至檢查點緩存。
7.如權利要求6所述的方法,其中,所述觸發事件是來自檢查點管理器的信號。
8.如權利要求6所述的方法,其中,所述觸發事件是自從上次寫至檢查點緩存時起記錄數目的處理。
9.如權利要求6所述的方法,其中,所述觸發事件是自上次寫至檢查點緩存時起時間段的經過。
10.如權利要求1所述的方法,其中,包括檢查點處理的組成部分並行地在多個處理設備上運行。
11.如權利要求10所述的方法,其中,數據記錄在多個並行處理設備之中的分配在批量的運行之間是一致的,並且每個處理設備保持獨立的檢查點緩存。
12.如權利要求10所述的方法,其中,數據記錄在多個並行處理設備之中的分配是動態的,並且處理設備共享對於所共享的非易失性存儲器中存儲的單個檢查點緩存的訪問, 其中對於檢查點緩存的寫入由檢查點管理器控制。
13.如權利要求1所述的方法,進一步包括在已經發生錯誤狀況時,重新開始數據流程圖中的所有組成部分;從一個或更多個數據源讀取包括多個記錄的批量輸入數據;以及使整個批量經過數據流程圖。
14.如權利要求13所述的方法,其中,所述動作包括與遠程伺服器通信。
15.一種存儲了用於以容錯方式處理批量輸入數據的電腦程式的計算機可讀介質, 該電腦程式包括指令,所述指令使得計算機從一個或更多個數據源讀取包括多個記錄的批量輸入數據;以及使所述批量經過包括由鏈路連接的代表組成部分的兩個或更多個節點的數據流程圖, 所述鏈路代表各組成部分之間的數據的流,其中,至少一個但少於全部的組成部分包括檢查點處理,用於針對與一個或更多個記錄相關聯的數個工作單元中的每一個執行的動作; 其中,所述檢查點處理進一步包括在針對批量的處理開始時,打開非易失性存儲器中存儲的檢查點緩存;以及對於來自所述批量的每個工作單元,如果由於對工作單元執行所述動作所產生的結果在之前被保存在檢查點緩存中,則使用所保存的結果完成工作單元的處理而不再次執行所述動作,或者如果由於對工作單元執行所述動作所產生的結果未被保存在檢查點緩存中, 則執行所述動作以完成工作單元的處理並且將由於執行所述動作所產生的結果保存在檢查點緩存中。
16. 一種用於以容錯方式處理批量輸入數據的系統,該系統包括 用於從一個或更多個數據源讀取包括多個記錄的批量輸入數據的部件;以及用於使所述批量經過包括由鏈路連接的代表組成部分的兩個或更多個節點的數據流程圖,所述鏈路代表各組成部分之間的數據的流,其中,至少一個但少於全部的組成部分包括檢查點處理,用於針對與一個或更多個記錄相關聯的數個工作單元中的每一個執行的動作;其中,所述檢查點處理包括在針對批量的處理開始時,打開非易失性存儲器中存儲的檢查點緩存;以及對於來自所述批量的每個工作單元,如果由於對工作單元執行所述動作所產生的結果在之前被保存在檢查點緩存中,則使用所保存的結果完成工作單元的處理而不再次執行所述動作,或者如果由於對工作單元執行所述動作所產生的結果未被保存在檢查點緩存中, 則執行所述動作以完成工作單元的處理並且將由於執行所述動作所產生的結果保存在檢查點緩存中。
全文摘要
處理批量的輸入數據包括讀取包括數個記錄的批量,並且使所述批量經過數據流程圖。至少一個但少於全部的圖組成部分包括檢查點處理,用於針對與一個或更多個記錄相關聯的數個工作單元中的每一個執行的動作;檢查點處理包括在處理開始時,打開檢查點緩存。如果由於對工作單元執行所述動作所產生的結果在之前被保存在檢查點緩存中,則使用所保存的結果完成工作單元的處理而不再次執行所述動作。如果由於對工作單元執行所述動作所產生的結果未被保存在檢查點緩存中,則執行所述動作以完成工作單元的處理並且將由於執行所述動作所產生的結果保存在檢查點緩存中。
文檔編號G06F11/00GK102473122SQ201080031812
公開日2012年5月23日 申請日期2010年7月13日 優先權日2009年7月14日
發明者B.P.多羅斯, M.D.阿特布裡, T.瓦克林 申請人:起元技術有限責任公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀