最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種支持多主機分布式數(shù)據(jù)處理的批處理方法及系統(tǒng)的制作方法

文檔序號:6377748閱讀:398來源:國知局
專利名稱:一種支持多主機分布式數(shù)據(jù)處理的批處理方法及系統(tǒng)的制作方法
一種支持多主機分布式數(shù)據(jù)處理的批處理方法及系統(tǒng)本發(fā)明涉及信息數(shù)據(jù)處理技術領域,具體是一種支持多主機分布式數(shù)據(jù)處理的批處理方法及系統(tǒng)。隨著證券交易市場的日益蓬勃和成熟,交易數(shù)據(jù)量也越來越大,對交易及處理系統(tǒng)的穩(wěn)定性和處理效率都有較高的要求。在每個交易日交易時間段過后,交易系統(tǒng)就開始對當日的交易進行清算,然后處理復雜的非實時成交業(yè)務。這類盤后處理過程,業(yè)內(nèi)通常稱為批處理。簡單的說,批處理就是將不同的任務進行分組,即分批,然后按照一定的順序執(zhí)行這些任務的過程。
根據(jù)業(yè)務復雜程度的不同,批處理系統(tǒng)的復雜程度也不盡相同。最簡單的批處理系統(tǒng)可以是一個簡單、直觀的SHELL程序,例如現(xiàn)有技術中有一種固定收益平臺的批處理系統(tǒng),此類批處理系統(tǒng)可以滿足比較簡單的業(yè)務需求。但是其效率、可擴展性,以及使用的便利性都有比較明顯的問題。比如,如果需要增加一段處理邏輯,就需要修改該SHELL程序,對所有的其他業(yè)務都會有較大影響?,F(xiàn)有技術中,大宗交易系統(tǒng)的批處理系統(tǒng)通常是一個基于UNIX的CR0NTAB的輕量級數(shù)據(jù)處理系統(tǒng)。一方面,CR0NTAB為周期性調(diào)用應用程序邏輯提供了較大的便利,另一方面,其局限性也是十分的明顯。首先,其不具備高可用性。使用CR0NTAB意味著應用程序被執(zhí)行的時間點是固定的,當某一應用程序所依賴的上游系統(tǒng)故障而需要推遲該應用程序時,需要人工干預。第二,異常處理能力較差?;贑R0NTAB,并沒有一個統(tǒng)籌的管理程序負責對于各個應用程序的執(zhí)行情況進行監(jiān)控。當某一個應用程序執(zhí)行出錯時,并不能及時反饋運行人員。在實踐中,往往是下游系統(tǒng)運行人員將錯誤通知到該批處理系統(tǒng)的運行人員。第三,各批步驟耦合性較高,擴展性不佳。在CR0NTAB配置文件中,所有的批步驟都被賦予了一個時間點。亦即在時間點的維度上,所有的批步驟都相關。而實際操作中,一般批步驟之間最大的相關性應該是先后順序,而非實際的時間點。其限制了時間點,卻未必能保證實際執(zhí)行順序,因此不夠穩(wěn)定可靠,在現(xiàn)有市場中還未能有一種處理效率高、安全穩(wěn)定且可靠的批處理系統(tǒng)來滿足日益豐富的數(shù)據(jù)量。本發(fā)明的目的就是為了解決現(xiàn)有技術中的不足和缺陷,提供一種耦合性高、擴展性佳、安全、穩(wěn)定、可靠的支持多主機分布式數(shù)據(jù)處理的批處理方法及系統(tǒng)。為實現(xiàn)上述目的,設計一種支持多主機分布式數(shù)據(jù)處理的批處理方法及系統(tǒng),其特征在于批處理系統(tǒng)中設有批處理框架,批處理框架主要包括批處理引擎程序、批處理管理和監(jiān)控程序、批處理流程控制文件以及批處理批步驟定義文件,其中,流程控制文件和批步驟定義文件為兩個配置文件,當批處理引擎啟動后,就會遍歷流程控制文件,獲得下一步需要處理批步驟代碼,然后根據(jù)批處理代碼,從批步驟定義文件獲得需要執(zhí)行的腳本信息,然后執(zhí)行該腳本來完成該批步驟。所述的批處理引擎程序掃描批處理流程控制文件過程中,如果發(fā)現(xiàn)兩個批步驟的配置為并行執(zhí)行,則會將兩個批步驟分別提交CPU并行執(zhí)行;另外,流程控制文件中,將批處理步驟進行分組,不同的批處理組之間并行處理。所述的批處理系統(tǒng)采用多主機框架,多臺主機使用同一個磁盤,訪問相同的文件時,內(nèi)存也保持一致,批處理引擎在其中一臺主機中執(zhí)行。所述的批處理框架和批處理應用程序相互分離,新增一個批處理步驟,在流程控制文件中新增該批步驟代碼以及批步驟名,然后在批步驟定義文件中定義批步驟的相關信息;批步驟定義的相關信息包括需要執(zhí)行的應用程序、是否需要多主機并發(fā)、是否需要多進程并發(fā)。一種支持多主機分布式數(shù)據(jù)處理的批處理方法,其特征在于該方法步驟操作如下
a.批處理框架模型批處理引擎模塊是批處理框架的核心,每一個批步驟會有一個5位數(shù)的代碼,當批處理引擎啟動后,就會遍歷批處理流控制文件,獲得下一步需要處理批步驟代碼,然后根據(jù)批處理代碼,從批步驟定義文件獲得需要執(zhí)行的腳本,然后執(zhí)行該腳本來完成該批步驟,批處理引擎還會對每一個批步驟執(zhí)行的結(jié)果進行檢查并做相應處理;b.批處理操控界面批處理操控界面中,每一條記錄代表一個批步驟,根據(jù)此界面查看及設置批步驟的執(zhí)行狀態(tài)、查看批步驟所調(diào)用的應用程序、查看執(zhí)行批步驟執(zhí)行日志、重新啟動批處理操作;c.流控制模型-串行處理與并行處理對于每一個批步驟,在流控制文件FPFLWCTL中都會定義至少3條記錄,批處理引擎在處理“P”記錄時,會提交此批步驟所需調(diào)用的主處理程序,即應用程序到CPU,進行業(yè)務邏輯處理;處理“S”記錄時,則會去同步并等待主處理程序完成;處理“C”時,會檢查主處理程序是否正確的執(zhí)行,當發(fā)現(xiàn)該批步驟的應用程序異常退出,則會將該批步驟在批步驟定義文件FPPRCSTS中的執(zhí)行狀態(tài)置為ERROR,同時批處理引擎停止工作,批處理監(jiān)控程序一旦掃描發(fā)現(xiàn)有批步驟狀態(tài)被置為ERROR,就會在批處理操控界面中將該批步驟置為紅色,以引起運行人員注意;所述的串行處理即每次只執(zhí)行一個批處理步驟,下一個步驟只有在前一個步驟結(jié)束之后才能啟動處理的執(zhí)行方式,實現(xiàn)兩個批步驟的串行處理,只需要在FPFLWCTL文件中按“P1S1C1P2S2C2”的順序排列兩個批步驟即可;所述的并行處理即多個相關程度較低的批處理步驟同時運行,各自處理不同的業(yè)務文件,相互之間沒有影響,兩個批處理步驟間的并行處理在FPFLWCTL文件中的組織方式為“P1P2S1C1S2C2”,批處理引擎讀取時,先依次讀到兩步批處理的P類記錄P1、P2,將兩個任務提交到CPU讓其并行執(zhí)行,然后順序讀到每一步批處理的SC記錄,依次進行同步和檢查;a.流控制模型-批步驟分組并行運行模型批處理組是一個批處理中邏輯連貫并且功能相關的步驟的集合,這些步驟被放進一個批處理組中,可以與其它批處理組同時并行執(zhí)行;當批步驟Pl,P2為第一組,即組X,P3,P4為第二組,即組Y,則要使得Pl,P2與P3, P4并行,只需要在流控制文件FPFLWCTL中做如下配置“EXP1S1C1P2S2C2RXEYP3S3C3P4S4C4RYSXCXSYCY”,其中EX, EY和RX,RY分別為批處理組的入口和出口,當批處理引擎處理到一個批處理組的入口 EX時,批處理引擎會再出創(chuàng)建出一個批處理引擎,專門用于處理該批處理組中的批步驟,如此,組X和組Y就由兩個并行的批處理引擎進行處理;b.批處理定義文件批步驟定義文件,定義了每一個批步驟的各項屬性,包括該批步驟調(diào)用的應用程序、批步驟是否需要在多主機執(zhí)行多進程并發(fā)執(zhí)行、批步驟執(zhí)行狀態(tài),競價撮合平臺的批處理系統(tǒng)將持倉全部落地,對應批步驟70381 GEN_CCYE_IS,由于持倉信息較大,而且分布在不同主機的內(nèi)存中,因此需要多主機并行處理,同時,為了進一步加快速度,每一個主機亦 同時有2個相同的進程在并行執(zhí)行,實現(xiàn)上述的多主機多進程并發(fā),只需要將FPPRCSTS的配置字段Set In Memory Flag設置為2 ;c.多主機并發(fā)模型當某個批步驟采用多主機并發(fā)模式處理,批處理引擎在每一臺主機上分別提交該批步驟的主處理程序,提交的每一個主處理程序稱為一個實例,這樣,每一臺主機有一個主處理程序在執(zhí)行同樣的處理邏輯,而該主處理程序會遍歷驅(qū)動文件的每一個待處理資源所對應的記錄,每當一個實例讀取驅(qū)動文件中的一條記錄時,就會在該條記錄上加上一把鎖,處理完后,在該記錄上加上“已完成”的標簽,而任何實例是不會去處理帶鎖或者已完成的記錄的,如此,兩個執(zhí)行在不同主機上的同一個主處理程序,協(xié)同并發(fā)的完成了處理;d.可重復執(zhí)行原則可重復執(zhí)行原則就是一個批步驟可以反復執(zhí)行,而輸出的結(jié)果不會發(fā)生改變,在日常運行過程中,由于與上下游系統(tǒng)的關聯(lián),時有輸入文件錯誤而導致批步驟異常的情況發(fā)生,當異常的批步驟滿足可重復執(zhí)行原則,那么運行人員只需要修正輸入文件之后,重新執(zhí)行該批步驟即可;對于只涉及文件操作,而不對共享內(nèi)存進行修改的批步驟,在核心處理邏輯執(zhí)行之前,一般會包括一個預處理階段,預處理階段會校驗此批步驟需要輸出的文件是否存在,當存在,就會將其刪除,保證每次核心處理邏輯執(zhí)行時的相關環(huán)境的一致性;而對于修改共享內(nèi)存的批步驟,要實施可重復執(zhí)行原則相對比較復雜,應用程序在更新共享內(nèi)存的過程中,由于輸入文件錯誤等問題報錯,內(nèi)存較難做到回滾,解決這個問題可以從兩個角度出發(fā),一方面,減少在更新內(nèi)存過程中出錯的概率,實踐中,應用程序很少因為常規(guī)的內(nèi)存讀寫出錯,而往往是由于更新內(nèi)存所依賴的輸入文件內(nèi)容和形式不合法而出錯,因此,對于每一個會寫共享內(nèi)存的批步驟之前,都加上一個額外的批步驟校驗輸入文件合法性,另一方面,在共享內(nèi)存更新之前設立還原點,一旦某一批步驟更新共享內(nèi)存出錯,就可以從還原點開始重新執(zhí)行,例如,在處理新增賬戶和賬戶狀態(tài)變更的文件之前,有一個還原賬戶信息的批步驟,即還原點,一旦賬戶更新報錯,就可以通過執(zhí)行該步驟將賬戶信息的共享內(nèi)存恢復到更新之前。批處理引擎根據(jù)流程控制文件中的P、S、C、R、E記錄進行不同的處理,其具體邏輯步驟為
a.對應一個批步驟讀取流程控制文件中下一條記錄;b.批步驟記錄類型記錄為P時,執(zhí)行此批步驟對應的執(zhí)行程序,執(zhí)行完成后回到步驟a,當執(zhí)行不成功則報錯;批步驟記錄類型記錄為S時,同步當前處理的批步驟,一直到當前步驟的執(zhí)行程序執(zhí)行完成,執(zhí)行完成后回到步驟a,當執(zhí)行不成功則報錯;批步驟記錄類型記錄為C時,檢查此部批步驟對應的執(zhí)行邏輯是否成功執(zhí)行,執(zhí)行完成后回到步驟a,當執(zhí)行不成功則報錯;批步驟記錄類型記錄為E時,生成一個子批處理引擎,從當前批步驟開始執(zhí)行,并記錄當前標注為“E”的批步驟名;批步驟記錄類型記錄為R時,判斷是否與之前類型為“E”的批步驟記錄同名,當是則結(jié)束,當不成功則報錯。對于驅(qū)動文件記錄加鎖的處理方式其具體步驟為a.讀取驅(qū)動文件下一條記錄;b.判斷當前記錄是否尚未被處理,當已處理則回到步驟a,當未處理則進入步驟c ;c.更新驅(qū)動文件中該記錄狀態(tài),將其狀態(tài)置為“P”,表示正在處理;d.根據(jù)當前處理的驅(qū)動文件記錄調(diào)用對應的處理邏輯;·e.更新驅(qū)動文件該記錄狀態(tài),將其狀態(tài)置為“C”,表示處理完畢。本發(fā)明同現(xiàn)有技術相比,具有較大的突破和優(yōu)勢,解決了現(xiàn)有技術中的諸多不足和缺陷,本發(fā)明中的批處理系統(tǒng)是一套有高并發(fā)性、高可用性、高可擴展性的系統(tǒng)。其設計達到了下述的技術效果I.批處理框架與應用邏輯分離。批處理框架提供一套靈活且可配置的流程控制方案,使開發(fā)人員能夠方便地增減批處理任務,調(diào)整任務的前后順序。2.批處理框架對每個批步驟的執(zhí)行情況進行實時監(jiān)控并反饋運行人員。3.支持批步驟串行和并行執(zhí)行相結(jié)合的處理方式,提高批處理執(zhí)行效率。4.支持多主機多進程并發(fā)的分布式處理。5.批處理各批步驟之間耦合度小。批步驟可以重復運行。顯著提高批處理容錯能力。6.提供友好的人機交互界面,運行人員能夠?qū)θ我慌襟E進行暫停、恢復等控制。7.本發(fā)明顯著地提升了主機進行批處理的性能和穩(wěn)定性。圖I為本發(fā)明的批處理框架圖;圖2為本發(fā)明的流程控制文件處理流程圖;圖3為本發(fā)明的多主機分布式模型;圖4是本發(fā)明驅(qū)動文件記錄鎖處理流程圖;指定圖I為本發(fā)明的摘要附圖
。[具體實施方式
]下面結(jié)合附圖對本發(fā)明作進一步說明,這種系統(tǒng)和方法的原理對本專業(yè)的人來說是非常清楚的。應當理解,此處所描述的具體實施例僅用于解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供了一個批處理框架,作為一個批處理系統(tǒng)的基礎。批處理框架主要包括批處理引擎程序,批處理管理和監(jiān)控程序,批處理流程控制文件以及批處理批步驟定義文件。其中,流程控制文件和批步驟定義文件為兩個配置文件。當批處理引擎啟動后,就會遍歷流程控制文件,獲得下一步需要處理批步驟代碼,然后根據(jù)批處理代碼,從批步驟定義文件獲得需要執(zhí)行的腳本信息,然后執(zhí)行該腳本來完成該批步驟。為了實現(xiàn)批處理的高并發(fā)性,需要在批處理流程文件中做相應的配置。批處理引擎程序掃描批處理流程控制文件過程中,當發(fā)現(xiàn)兩個批步驟的配置為并行執(zhí)行,則會將兩個批步驟分別提交CPU并行執(zhí)行。另外,流程控制文件中,亦可以將批處理步驟進行分組。不同的批處理組之間并行處理。為了實現(xiàn)多主機并發(fā),批步驟定義文件中對于批步驟是否 在各個主機都要執(zhí)行,以及在每個主機中執(zhí)行多少個實例都進行了描述,批處理引擎根據(jù)其定義完成多主機多進程并發(fā)。為了實現(xiàn)交易系統(tǒng)的高可用性,本發(fā)明中的批處理系統(tǒng)使用多主機框架。多臺主機使用同一個磁盤,訪問相同的文件時,內(nèi)存也保持一致。批處理引擎在其中一臺主機中執(zhí)行。當該主機發(fā)生宕機時,批處理引擎異常退出。此時,其他主機的批處理監(jiān)控進程就能發(fā)現(xiàn)正在執(zhí)行的批步驟出錯,并將錯誤信息反饋運行人員。運行人員只需要在任一其他主機中重新啟動批處理即可。另外,對于批處理引擎所在的主機,某一個批步驟執(zhí)行出錯,批處理監(jiān)控界面就會將出錯的批步驟用紅色標注出來,批處理引擎也會停止執(zhí)行。運行人員分析報錯原因,排除障礙后,直接重新執(zhí)行批處理引擎,批處理系統(tǒng)即可恢復。為了實現(xiàn)批處理系統(tǒng)的高可擴展性,批處理框架和批處理應用程序相互分離。新增一個批處理步驟,只需要在流程控制文件中新增該批步驟代碼以及批步驟名,然后在批步驟定義文件中定義批步驟的相關信息即可。批步驟定義的相關信息包括需要執(zhí)行的應用程序、是否需要多主機并發(fā)、是否需要多進程并發(fā)等等。批處理根據(jù)流程控制文件和批步驟定義文件的相關信息,可以準確的執(zhí)行應用程序邏輯。I、批處理框架模型如圖I所示,批處理框架主要包括批處理引擎程序,批處理管理和監(jiān)控程序,批處理流程控制文件以及批處理批步驟定義文件。批處理引擎模塊是批處理框架的核心。當批處理引擎啟動后,就會遍歷批處理流控制文件,獲得下一步需要處理的批步驟代碼,每一個批步驟會有一個5位數(shù)的代碼,然后根據(jù)批處理代碼,從批步驟定義文件獲得需要執(zhí)行的腳本,然后執(zhí)行該腳本來完成該批步驟。批處理引擎還會對每一個批步驟執(zhí)行的結(jié)果進行檢查并做相應處理。如圖I中所示,F(xiàn)PFLWCTL為批處理流程控制文件,定義了所有批步驟的順序和組織結(jié)構,包括分組情況;FPPRCSTS為批步驟定義文件,定義了每一個批步驟的各項屬性。包括該批步驟調(diào)用的腳本、批步驟是否需要在多主機執(zhí)行、批步驟執(zhí)行狀態(tài)等;FPFILL0G為邏輯名定義文件,用簡單名字定義了文件的物理地址;FPAUT0為批處理配置文件,主要用于存放一些配置項;批處理引擎為框架的核心程序,通過讀取批處理流程控制文件、批步驟定義文件來協(xié)調(diào)整個批處理;批處理管理和監(jiān)控為用戶界面核心程序,為操作人員提供友好的操作界面;批處理步驟為實際批處理步驟調(diào)用的程序;日志文件為包括步驟日志,系統(tǒng)錯誤日志和操作員日志三種日志文件。2、批處理操控界面批處理操控界面中,每一條記錄代表一個批步驟。本界面為運行人員提供了十分友好的用戶體驗。運行人員可以根據(jù)此界面查看及設置批步驟的執(zhí)行狀態(tài)、查看批步驟所調(diào)用的應用程序、查看執(zhí)行批步驟執(zhí)行日志、重新啟動批處理等操作。3、流控制模型-串行處理與并行處理對于每一個批步驟,在流控制文件FPFLWCTL中都會定義至少3條記錄。例如批步驟70330 GEN_DDRZ_FILE有以下3條記錄70330 P GEN_DDRZ_FILE
70330 S GEN_DDRZ_FILE70330 C GEN_DDRZ_FILE批處理引擎在處理“P”記錄時,會提交此批步驟所需調(diào)用的主處理程序,即應用程序到CPU,進行業(yè)務邏輯處理;處理“S”記錄時,則會去同步/等待主處理程序完成;處理“C”時,會檢查主處理程序是否正確的執(zhí)行,如果發(fā)現(xiàn)該批步驟的應用程序異常退出,則會將該批步驟在批步驟定義文件FPPRCSTS中的執(zhí)行狀態(tài)置為ERROR,同時批處理引擎停止工作。批處理監(jiān)控程序一旦掃描發(fā)現(xiàn)有批步驟狀態(tài)被置為ERROR,就會在批處理操控界面中將該批步驟置為紅色,以引起運行人員注意。所謂串行處理即每次只執(zhí)行一個批處理步驟,下一個步驟只有在前一個步驟結(jié)束之后才能啟動處理的執(zhí)行方式實現(xiàn)兩個批步驟的串行處理,只需要在FPFLWCTL文件中按“P1S1C1P2S2C2”的順序排列兩個批步驟即可。所謂并行處理即多個相關程度較低的批處理步驟同時運行,各自處理不同的業(yè)務文件,相互之間沒有影響。兩個批處理步驟間的并行處理在FPFLWCTL文件中的組織方式為“P1P2S1C1S2C2”。批處理引擎讀取時,先依次讀到兩步批處理的P類記錄,即P1、P2,將兩個任務提交到CPU讓其并行執(zhí)行,然后順序讀到每一步批處理的SC記錄,依次進行同步和檢查4、流控制模型-批步驟分組并行運行模型批處理組是一個批處理中邏輯連貫并且功能相關的步驟的集合,這些步驟被放進一個批處理組中,可以與其它批處理組同時并行執(zhí)行。假設批步驟Pl,P2為第一組,即組X,P3,P4為第二組,即組Y,則要使得Pl,P2與P3, P4并行,只需要在流控制文件FPFLWCTL中做如下配置“EXP1S1C1P2S2C2RXEYP3S3C3P4S4C4RYSXCXSYCY”,其中EX, EY和RX, RY分別為批處理組的入口和出口。當批處理引擎處理到一個批處理組的入口,例如EX時,批處理引擎會再出創(chuàng)建出一個批處理引擎,專門用于處理該批處理組中的批步驟。如此,組X和組Y就由兩個并行的批處理引擎進行處理。該實施例中競價撮合平臺的批處理系統(tǒng)需要處理以下業(yè)務表I業(yè)務處理流程
Mb理代號I批步驟名稱 I業(yè)務
79521WAIT_0EF_TC 等待開放式基金數(shù)據(jù)
19401|GEN—0FD04 I處理開放式基金成交數(shù)據(jù)—
權利要求
1.一種支持多主機分布式數(shù)據(jù)處理的批處理系統(tǒng),其特征在于批處理系統(tǒng)中設有批處理框架,批處理框架主要包括批處理引擎程序、批處理管理和監(jiān)控程序、批處理流程控制文件以及批處理批步驟定義文件,其中,流程控制文件和批步驟定義文件為兩個配置文件,當批處理引擎啟動后,就會遍歷流程控制文件,獲得下一步需要處理批步驟代碼,然后根據(jù)批處理代碼,從批步驟定義文件獲得需要執(zhí)行的腳本信息,然后執(zhí)行該腳本來完成該批步驟。
2.如權利要求I所述的一種支持多主機分布式數(shù)據(jù)處理的批處理系統(tǒng),其特征在于所述的批處理引擎程序掃描批處理流程控制文件過程中,如果發(fā)現(xiàn)兩個批步驟的配置為并行執(zhí)行,則會將兩個批步驟分別提交CPU并行執(zhí)行;另外,流程控制文件中,將批處理步驟進行分組,不同的批處理組之間并行處理。
3.如權利要求I所述的一種支持多主機分布式數(shù)據(jù)處理的批處理系統(tǒng),其特征在于所述的批處理系統(tǒng)采用多主機框架,多臺主機使用同一個磁盤,訪問相同的文件時,內(nèi)存也保持一致,批處理引擎在其中一臺主機中執(zhí)行。
4.如權利要求I所述的一種支持多主機分布式數(shù)據(jù)處理的批處理系統(tǒng),其特征在于所述的批處理框架和批處理應用程序相互分離,新增一個批處理步驟,在流程控制文件中新增該批步驟代碼以及批步驟名,然后在批步驟定義文件中定義批步驟的相關信息;批步驟定義的相關信息包括需要執(zhí)行的應用程序、是否需要多主機并發(fā)、是否需要多進程并發(fā)。
5.一種支持多主機分布式數(shù)據(jù)處理的批處理方法,其特征在于該方法步驟操作如下 a)批處理框架模型 批處理引擎模塊是批處理框架的核心,每一個批步驟會有一個5位數(shù)的代碼,當批處理引擎啟動后,就會遍歷批處理流控制文件,獲得下一步需要處理批步驟代碼,然后根據(jù)批處理代碼,從批步驟定義文件獲得需要執(zhí)行的腳本,然后執(zhí)行該腳本來完成該批步驟,批處理引擎還會對每一個批步驟執(zhí)行的結(jié)果進行檢查并做相應處理; b)批處理操控界面 批處理操控界面中,每一條記錄代表一個批步驟,根據(jù)此界面查看及設置批步驟的執(zhí)行狀態(tài)、查看批步驟所調(diào)用的應用程序、查看執(zhí)行批步驟執(zhí)行日志、重新啟動批處理操作; c)流控制模型-串行處理與并行處理 對于每一個批步驟,在流控制文件FPFLWCTL中都會定義至少3條記錄,批處理引擎在處理“P”記錄時,會提交此批步驟所需調(diào)用的主處理程序,即應用程序到CPU,進行業(yè)務邏輯處理;處理“S”記錄時,則會去同步并等待主處理程序完成;處理“C”時,會檢查主處理程序是否正確的執(zhí)行,當發(fā)現(xiàn)該批步驟的應用程序異常退出,則會將該批步驟在批步驟定義文件FPPRCSTS中的執(zhí)行狀態(tài)置為ERROR,同時批處理引擎停止工作,批處理監(jiān)控程序一旦掃描發(fā)現(xiàn)有批步驟狀態(tài)被置為ERROR,就會在批處理操控界面中將該批步驟置為紅色,以引起運行人員注意; 所述的串行處理即每次只執(zhí)行一個批處理步驟,下一個步驟只有在前一個步驟結(jié)束之后才能啟動處理的執(zhí)行方式,實現(xiàn)兩個批步驟的串行處理,只需要在FPFLWCTL文件中按.71、51、(1、?2、52、02”的順序排列兩個批步驟即可; 所述的并行處理即多個相關程度較低的批處理步驟同時運行,各自處理不同的業(yè)務文件,相互之間沒有影響,兩個批處理步驟間的并行處理在FPFLWCTL文件中的組織方式為“P1、P2、S1、C1、S2、C2”,批處理引擎讀取時,先依次讀到兩步批處理的P類記錄P1、P2,將兩個任務提交到CPU讓其并行執(zhí)行,然后順序讀到每一步批處理的s、c記錄,依次進行同步和檢查; d)流控制模型-批步驟分組并行運行模型 批處理組是一個批處理中邏輯連貫并且功能相關的步驟的集合,這些步驟被放進一個批處理組中,可以與其它批處理組同時并行執(zhí)行; 當批步驟Pl,P2為第一組,即組X,P3,P4為第二組,即組Y,則要使得Pl,P2與P3,P4并行,只需要在流控制文件FPFLWCTL中做如下配置“EX、P1、S1、C1、P2、S2、C2、RX、EY、P3、S.3、C3、P4、S4、C4、RY、SX、CX、SY、CY”,其中EX, EY和RX, RY分別為批處理組的入口和出口,當批處理引擎處理到一個批處理組的入口 EX時,批處理引擎會再出創(chuàng)建出一個批處理引擎,專門用于處理該批處理組中的批步驟,如此,組X和組Y就由兩個并行的批處理引擎進行處理; e)批處理定義文件 批步驟定義文件,定義了每一個批步驟的各項屬性,包括該批步驟調(diào)用的應用程序、批步驟是否需要在多主機執(zhí)行多進程并發(fā)執(zhí)行、批步驟執(zhí)行狀態(tài),競價撮合平臺的批處理系統(tǒng)將持倉全部落地,對應批步驟70381 GEN_CCYE_IS,由于持倉信息較大,而且分布在不同主機的內(nèi)存中,因此需要多主機并行處理,同時,為了進一步加快速度,每一個主機亦同時有2個相同的進程在并行執(zhí)行,實現(xiàn)上述的多主機多進程并發(fā),只需要將FPPRCSTS的配置字段 Set In Memory Flag 設置為 2 ; f)多主機并發(fā)模型 當某個批步驟采用多主機并發(fā)模式處理,批處理引擎在每一臺主機上分別提交該批步驟的主處理程序,提交的每一個主處理程序稱為一個實例,這樣,每一臺主機有一個主處理程序在執(zhí)行同樣的處理邏輯,而該主處理程序會遍歷驅(qū)動文件的每一個待處理資源所對應的記錄,每當一個實例讀取驅(qū)動文件中的一條記錄時,就會在該條記錄上加上一把鎖,處理完后,在該記錄上加上“已完成”的標簽,而任何實例是不會去處理帶鎖或者已完成的記錄的,如此,兩個執(zhí)行在不同主機上的同一個主處理程序,協(xié)同并發(fā)的完成了處理; g)可重復執(zhí)行原則 可重復執(zhí)行原則就是一個批步驟可以反復執(zhí)行,而輸出的結(jié)果不會發(fā)生改變,在日常運行過程中,由于與上下游系統(tǒng)的關聯(lián),時有輸入文件錯誤而導致批步驟異常的情況發(fā)生,當異常的批步驟滿足可重復執(zhí)行原則,那么運行人員只需要修正輸入文件之后,重新執(zhí)行該批步驟即可; 對于只涉及文件操作,而不對共享內(nèi)存進行修改的批步驟,在核心處理邏輯執(zhí)行之前,一般會包括一個預處理階段,預處理階段會校驗此批步驟需要輸出的文件是否存在,當存在,就會將其刪除,保證每次核心處理邏輯執(zhí)行時的相關環(huán)境的一致性; 而對于修改共享內(nèi)存的批步驟,要實施可重復執(zhí)行原則相對比較復雜,應用程序在更新共享內(nèi)存的過程中,由于輸入文件錯誤等問題報錯,內(nèi)存較難做到回滾,解決這個問題可 以從兩個角度出發(fā),一方面,減少在更新內(nèi)存過程中出錯的概率,實踐中,應用程序很少因為常規(guī)的內(nèi)存讀寫出錯,而往往是由于更新內(nèi)存所依賴的輸入文件內(nèi)容和形式不合法而出錯,因此,對于每一個會寫共享內(nèi)存的批步驟之前,都加上一個額外的批步驟校驗輸入文件合法性,另一方面,在共享內(nèi)存更新之前設立還原點,一旦某一批步驟更新共享內(nèi)存出錯,就可以從還原點開始重新執(zhí)行,例如,在處理新增賬戶和賬戶狀態(tài)變更的文件之前,有一個還原賬戶信息的批步驟,即還原點,一旦賬戶更新報錯,就可以通過執(zhí)行該步驟將賬戶信息的共享內(nèi)存恢復到更新之前。
6.如權利要求5所述的一種支持多主機分布式數(shù)據(jù)處理的批處理方法,其特征在于批處理引擎根據(jù)流程控制文件中的P、S、C、R、E記錄進行不同的處理,其具體邏輯步驟為 a)對應一個批步驟讀取流程控制文件中下一條記錄; b)批步驟記錄類型記錄為P時,執(zhí)行此批步驟對應的執(zhí)行程序,執(zhí)行完成后回到步驟a,當執(zhí)行不成功則報錯; 批步驟記錄類型記錄為S時,同步當前處理的批步驟,一直到當前步驟的執(zhí)行程序執(zhí)行完成,執(zhí)行完成后回到步驟a,當執(zhí)行不成功則報錯; 批步驟記錄類型記錄為C時,檢查此批步驟對應的執(zhí)行邏輯是否成功執(zhí)行,執(zhí)行完成后回到步驟a,當執(zhí)行不成功則報錯; 批步驟記錄類型記錄為E時,生成一個子批處理引擎,從當前批步驟開始執(zhí)行,并記錄當前標注為“E”的批步驟名; 批步驟記錄類型記錄為R時,判斷是否與之前類型為“E”的批步驟記錄同名,當是則結(jié)束,當不成功則報錯。
7.如權利要求5所述的一種支持多主機分布式數(shù)據(jù)處理的批處理方法,其特征在于對于驅(qū)動文件記錄加鎖的處理方式其具體步驟為 a)讀取驅(qū)動文件下一條記錄;b)判斷當前記錄是否尚未被處理,當已處理則回到步驟a,當未處理則進入步驟c; c)更新驅(qū)動文件中該記錄狀態(tài),將其狀態(tài)置為“P”,表示正在處理; d)根據(jù)當前處理的驅(qū)動文件記錄調(diào)用對應的處理邏輯; e)更新驅(qū)動文件該記錄狀態(tài),將其狀態(tài)置為“C”,表示處理完畢。
全文摘要
本發(fā)明涉及信息數(shù)據(jù)處理技術領域,具體是一種支持多主機分布式數(shù)據(jù)處理的批處理方法及系統(tǒng)。批處理系統(tǒng)中設有批處理框架,批處理框架主要包括批處理引擎程序,批處理管理和監(jiān)控程序,批處理流程控制文件以及批處理批步驟定義文件,其中,流程控制文件和批步驟定義文件為兩個配置文件,當批處理引擎啟動后,就會遍歷流程控制文件,獲得下一步需要處理批步驟代碼,然后根據(jù)批處理代碼,從批步驟定義文件獲得需要執(zhí)行的腳本信息,然后執(zhí)行該腳本來完成該批步驟。本發(fā)明同現(xiàn)有技術相比,具有較大的突破和優(yōu)勢,解決了現(xiàn)有技術中的諸多不足和缺陷,本發(fā)明中的批處理系統(tǒng)是一套有高并發(fā)性、高可用性、高可擴展性的系統(tǒng)。
文檔編號G06F9/38GK102929585SQ201210362479
公開日2013年2月13日 申請日期2012年9月25日 優(yōu)先權日2012年9月25日
發(fā)明者陳即憶, 武劍鋒, 王泊, 黃俊杰, 劉經(jīng)緯, 何希圣, 黃寅飛, 鄭剛, 陸素源, 白碩 申請人:上海證券交易所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1