[發明專利]一種支持多主機分布式數據處理的批處理方法及系統有效
申請號: | 201210362479.4 | 申請日: | 2012-09-25 |
公開(公告)號: | CN102929585A | 公開(公告)日: | 2013-02-13 |
發明(設計)人: | 陳即憶;武劍鋒;王泊;黃俊杰;劉經緯;何希圣;黃寅飛;鄭剛;陸素源;白碩 | 申請(專利權)人: | 上海證券交易所 |
主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/46 |
代理公司: | 上海三方專利事務所 31127 | 代理人: | 吳干權 |
地址: | 200120 上*** | 國省代碼: | 上海;31 |
權利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關鍵詞: | 一種 支持 主機 分布式 數據處理 批處理 方法 系統 | ||
1.一種支持多主機分布式數據處理的批處理系統,其特征在于批處理系統中設有批處理框架,批處理框架主要包括批處理引擎程序、批處理管理和監控程序、批處理流程控制文件以及批處理批步驟定義文件,其中,流程控制文件和批步驟定義文件為兩個配置文件,當批處理引擎啟動后,就會遍歷流程控制文件,獲得下一步需要處理批步驟代碼,然后根據批處理代碼,從批步驟定義文件獲得需要執行的腳本信息,然后執行該腳本來完成該批步驟。
2.如權利要求1所述的一種支持多主機分布式數據處理的批處理系統,其特征在于所述的批處理引擎程序掃描批處理流程控制文件過程中,如果發現兩個批步驟的配置為并行執行,則會將兩個批步驟分別提交CPU并行執行;另外,流程控制文件中,將批處理步驟進行分組,不同的批處理組之間并行處理。
3.如權利要求1所述的一種支持多主機分布式數據處理的批處理系統,其特征在于所述的批處理系統采用多主機框架,多臺主機使用同一個磁盤,訪問相同的文件時,內存也保持一致,批處理引擎在其中一臺主機中執行。
4.如權利要求1所述的一種支持多主機分布式數據處理的批處理系統,其特征在于所述的批處理框架和批處理應用程序相互分離,新增一個批處理步驟,在流程控制文件中新增該批步驟代碼以及批步驟名,然后在批步驟定義文件中定義批步驟的相關信息;批步驟定義的相關信息包括需要執行的應用程序、是否需要多主機并發、是否需要多進程并發。
5.一種支持多主機分布式數據處理的批處理方法,其特征在于該方法步驟操作如下:
a)批處理框架模型
批處理引擎模塊是批處理框架的核心,每一個批步驟會有一個5位數的代碼,當批處理引擎啟動后,就會遍歷批處理流控制文件,獲得下一步需要處理批步驟代碼,然后根據批處理代碼,從批步驟定義文件獲得需要執行的腳本,然后執行該腳本來完成該批步驟,批處理引擎還會對每一個批步驟執行的結果進行檢查并做相應處理;
b)批處理操控界面
批處理操控界面中,每一條記錄代表一個批步驟,根據此界面查看及設置批步驟的執行狀態、查看批步驟所調用的應用程序、查看執行批步驟執行日志、重新啟動批處理操作;
c)流控制模型–串行處理與并行處理
對于每一個批步驟,在流控制文件FPFLWCTL中都會定義至少3條記錄,批處理引擎在處理“P”記錄時,會提交此批步驟所需調用的主處理程序,即應用程序到CPU,進行業務邏輯處理;處理“S”記錄時,則會去同步并等待主處理程序完成;處理“C”時,會檢查主處理程序是否正確的執行,當發現該批步驟的應用程序異常退出,則會將該批步驟在批步驟定義文件FPPRCSTS中的執行狀態置為ERROR,同時批處理引擎停止工作,批處理監控程序一旦掃描發現有批步驟狀態被置為ERROR,就會在批處理操控界面中將該批步驟置為紅色,以引起運行人員注意;
所述的串行處理即每次只執行一個批處理步驟,下一個步驟只有在前一個步驟結束之后才能啟動處理的執行方式,實現兩個批步驟的串行處理,只需要在FPFLWCTL文件中按“P1?S1?C1?P2?S2?C2”的順序排列兩個批步驟即可;
所述的并行處理即多個相關程度較低的批處理步驟同時運行,各自處理不同的業務文件,相互之間沒有影響,兩個批處理步驟間的并行處理在FPFLWCTL文件中的組織方式為“P1?P2?S1?C1?S2?C2”,批處理引擎讀取時,先依次讀到兩步批處理的P類記錄P1、P2,將兩個任務提交到CPU讓其并行執行,然后順序讀到每一步批處理的S?C記錄,依次進行同步和檢查;
d)流控制模型–批步驟分組并行運行模型
批處理組是一個批處理中邏輯連貫并且功能相關的步驟的集合,這些步驟被放進一個批處理組中,可以與其它批處理組同時并行執行;
當批步驟P1,P2為第一組,即組X,P3,P4為第二組,即組Y,則要使得P1,P2與P3,P4并行,只需要在流控制文件FPFLWCTL中做如下配置:“EX?P1?S1?C1?P2?S2?C2?RX?EY?P3?S3?C3?P4?S4?C4?RY?SX?CX?SY?CY”,其中EX,EY和RX,RY分別為批處理組的入口和出口,當批處理引擎處理到一個批處理組的入口EX時,批處理引擎會再出創建出一個批處理引擎,專門用于處理該批處理組中的批步驟,如此,組X和組Y就由兩個并行的批處理引擎進行處理;
e)批處理定義文件
批步驟定義文件,定義了每一個批步驟的各項屬性,包括該批步驟調用的應用程序、批步驟是否需要在多主機執行多進程并發執行、批步驟執行狀態,競價撮合平臺的批處理系統將持倉全部落地,對應批步驟70381?GEN_CCYE_IS,由于持倉信息較大,而且分布在不同主機的內存中,因此需要多主機并行處理,同時,為了進一步加快速度,每一個主機亦同時有2個相同的進程在并行執行,實現上述的多主機多進程并發,只需要將FPPRCSTS的配置字段Set?In?Memory?Flag設置為2;
f)多主機并發模型
當某個批步驟采用多主機并發模式處理,批處理引擎在每一臺主機上分別提交該批步驟的主處理程序,提交的每一個主處理程序稱為一個實例,這樣,每一臺主機有一個主處理程序在執行同樣的處理邏輯,而該主處理程序會遍歷驅動文件的每一個待處理資源所對應的記錄,每當一個實例讀取驅動文件中的一條記錄時,就會在該條記錄上加上一把鎖,處理完后,在該記錄上加上“已完成”的標簽,而任何實例是不會去處理帶鎖或者已完成的記錄的,如此,兩個執行在不同主機上的同一個主處理程序,協同并發的完成了處理;
g)可重復執行原則
可重復執行原則就是一個批步驟可以反復執行,而輸出的結果不會發生改變,在日常運行過程中,由于與上下游系統的關聯,時有輸入文件錯誤而導致批步驟異常的情況發生,當異常的批步驟滿足可重復執行原則,那么運行人員只需要修正輸入文件之后,重新執行該批步驟即可;
對于只涉及文件操作,而不對共享內存進行修改的批步驟,在核心處理邏輯執行之前,一般會包括一個預處理階段,預處理階段會校驗此批步驟需要輸出的文件是否存在,當存在,就會將其刪除,保證每次核心處理邏輯執行時的相關環境的一致性;
而對于修改共享內存的批步驟,要實施可重復執行原則相對比較復雜,應用程序在更新共享內存的過程中,由于輸入文件錯誤等問題報錯,內存較難做到回滾,解決這個問題可以從兩個角度出發,一方面,減少在更新內存過程中出錯的概率,實踐中,應用程序很少因為常規的內存讀寫出錯,而往往是由于更新內存所依賴的輸入文件內容和形式不合法而出錯,因此,對于每一個會寫共享內存的批步驟之前,都加上一個額外的批步驟校驗輸入文件合法性,另一方面,在共享內存更新之前設立還原點,一旦某一批步驟更新共享內存出錯,就可以從還原點開始重新執行,例如,在處理新增賬戶和賬戶狀態變更的文件之前,有一個還原賬戶信息的批步驟,即還原點,一旦賬戶更新報錯,就可以通過執行該步驟將賬戶信息的共享內存恢復到更新之前。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海證券交易所,未經上海證券交易所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210362479.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種內嵌堰式收油裝置的環保船
- 下一篇:一種內嵌盤式收油裝置的環保船