TWI503745B - 關於實時中大數量處理指令之處置及處理的改善 - Google Patents

關於實時中大數量處理指令之處置及處理的改善 Download PDF

Info

Publication number
TWI503745B
TWI503745B TW098106478A TW98106478A TWI503745B TW I503745 B TWI503745 B TW I503745B TW 098106478 A TW098106478 A TW 098106478A TW 98106478 A TW98106478 A TW 98106478A TW I503745 B TWI503745 B TW I503745B
Authority
TW
Taiwan
Prior art keywords
instruction
processing
instructions
execution
update
Prior art date
Application number
TW098106478A
Other languages
English (en)
Other versions
TW200943182A (en
Inventor
Henri J Petit
Christine Deloge
Original Assignee
Euroclear Sa Nv
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 Euroclear Sa Nv filed Critical Euroclear Sa Nv
Publication of TW200943182A publication Critical patent/TW200943182A/zh
Application granted granted Critical
Publication of TWI503745B publication Critical patent/TWI503745B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

關於實時中大數量處理指令之處置及處理的改善
本發明係關於實時(real time)中處置及處理大數量處理指令之改善。更具體而言(但非排他性地),本發明係關於一種電腦處理架構,其係特別設計以最佳化每秒數百個指令之處理。
已存在各種方法解決實時中處置及處理大數量處理指令的問題。所有此等方法均已成功用於處置極大數量此種指令,且此成功中之已大量實現於使用較快且較強大之計算的此種系統。然而作為此類方法之基礎的架構已受到限定此類系統之最大可能處理量之某種方式的限制。
例如,存在此種技術之若干應用領域,諸如大量資料通信系統及資料處理系統。呈現此技術可如何使用之非限制但說明性實施例的一種此資料處理系統係為交易結算系統(transaction settlement system),其中表示不同方之間的協議之資料指令訊息可經執行以達成該協議之實際結算或執行。在此一配置(下文詳細描述其實施例)中,對受託結算實體電腦之指令(或命令)僅可在由該結算實體電腦所確定之條件(規則)允許該等指令之執行時起作用。因此,作為該程序之第一部分,需檢查用於資源之電子資料帳戶檔案之目前狀態,該等檔案為結算協議之主題。此等檢查確定實施該指令對於該等電子資料帳戶檔案之影響是否可接受。
在該程序之第二部分中,指令為:批准執行,稱為「提交(commit)」;或拒絕執行,稱為「轉返(rollback)」。更具體而言,在此非限制實施例中,雙方之資源帳戶檔案之位置由結算實體電腦評估以確定該指令是否可執行而不會導致該等電子資料帳戶檔案上之不可接受之位置。若條件合適,則執行資料記錄內所含有之指令(命令),且隨後更新(提交)儲存資源帳戶之目前位置的資料檔案。若條件不合適,則電子資料帳戶檔案保持不變,且在此時刻不執行指令。亦可預設地更新所有帳戶,且若第一階段指示電子資料帳戶檔案上之所得位置為不可接受,則逆轉更新(轉返)。此為高處理量系統之較佳選擇。一旦對於失敗指令之條件已改變,則轉返之資料指令可再循環,且在一稍後階段再次嘗試相關聯之命令。此全部亦需經常在實時中報告至協議的各方之電腦。
此資料處理之執行之特徵之一(在過去限制了所提議的解決方案之可擴充能力)為:需存取以執行此等指令之不同資源之數量,經常不隨指令之增加數量而增加。此係因為,在指令之增加數量之情況下,指令之執行往往仍集中於某一數量之資源上。此集中之所以成問題,係因為在一資源帳戶檔案之數值上有影響之每一指令皆需在下一指令之前更新該數值,此指定該帳戶可被處理。通常,此係藉由一特定指令在一給予帳戶檔案處於該程序中時取得該檔案之臨時獨佔性(鎖住),或檢查並隨後更新該資源帳戶檔案之數值而達成。此所需之在下一指令可 處理之前的更新對此等增加數量之指令之最大速度上具有直接影響。此對於許多不同類型指令所共用之實體資源而言係一嚴重問題。特定而言,在50%之指令僅更新5%之資源帳戶之情況下(其被視為高度集中情形),此係為一尤其嚴重之問題。
當為實體儲存之現金帳戶之資料檔案而需檢查以查看資金是否可用於指令執行時,可看到此情況的一非限制實施例。針對每一指令對此資源帳戶之檢查需在先前指令已由於其指令的執行而更新現金帳戶位置之後來實施。因此,此等程序需為循序的,否則一指令之可改變該帳戶之餘額的執行動作可能會使任何亦需存取該帳戶之後續指令無效。先前技術架構(下文描述)之最大處理速度全部受到此問題之限制。
已使用同時處理架構之先前技術系統中所引起之另一問題為「死鎖」(deadlock)問題。在兩個同時指令存取相同兩個帳戶而導致一個指令鎖住一個資源帳戶且另一指令鎖住第二資源帳戶的情況下,會出現此存在問題之情形。此情形令每一指令無法存取另一帳戶以進行核查從而實行指令。兩個指令皆被置於等待狀態,從而令其無法執行提交(執行)動作以處理指令。應瞭解,儘管一指令之轉返將釋放另一指令之處理,且總是可能的,但此解決方案令指令處理之處理量急劇減少。
儘管檢查及更新電子帳戶檔案之基本程序對於單個指令而言似乎相對微不足道,但每日數百萬此類指令之處理使得該解決方案不再微不足道。由結算實體所使用之任何系統之目的係 達成實時中可能之最高處理量。任何解決方案之可擴充性如同任何處理步驟中之任何少量的時間節省係極為重要,因為此類節省對於大量指令處置而言被增加許多倍。
許多先前技術系統已被開發以實施此類結算程序,且現參看圖1至5描述此一系統之典型實施例。
參看圖1,其中展示一般的先前技術中央資源管理系統10,其係配置成每日處置數百萬指令資料訊息。系統10耦接至各種通信通道12,該等通信通道12可為專用租用通信線路或可為其他類型之安全通信通道。經由此等通道,系統10連接至許多不同方的伺服器。在此實施例中且為便於說明,系統10連接至A方之伺服器14且連接至B方之伺服器16。A方之伺服器14及B方之伺服器16各已存取一相應的記錄資料庫18、20,其中每一記錄描述一與另一方之協議。
中央資源管理系統10通常包含一指令執行伺服器22,其已存取一主資源資料庫24,主資源資料庫24含有表示所有各方(在此實施例中即A及B)之資源帳戶的資料記錄。
參看圖2為提供用於每一方之主資源資料庫之結構的示意圖示。資料庫24包含用於每一方之複數個不同類型的資源帳戶檔案30及用於該方之總計資源值之指示符32。在此特定實施例中,指令資料訊息係各針對實行對此等帳戶檔案30之命令或指令,通常係將資源自一方之帳戶轉移至另一方之帳戶並相應更新總計資源值指示符32。帳戶為表示各方14、16之實 際資源的資料檔案30。資源可為一方之任何資源。在此實施例中,資源表示各方擁有該方希望交易之任何事物。
現參看圖3,其中展示一指令資料訊息40之一般結構或格式。指令資料訊息40主要具有實行指令所需之六個基本欄位。指令資料訊息40具有一方ID欄位42以用於識別指令之各方:在此具體例中,指令資料訊息40可識別A方及B方。提供執行日期欄位44以界定此指令訊息40將執行之日期。其餘四個欄位識別資源細節,其為指令之主體。提供第一資源類型欄位46及對應第一資源量欄位48以用於識別第一方(例如,A方)之資源及指令中將涉及之該資源之金額。提供第二資源類型欄位50及對應第二資源量欄位52以用於識別第二方(例如,B方)之資源及指令中將涉及之該資源之金額。
對於雙方之問的每一協議,將存在現存中之兩個指令資料訊息40(每一方一個)。
圖4展示圖1之先前技術指令執行伺服器22之組件。該等組件包括:指令驗證器60,其經配置成檢查一接收指令資料訊息40之有效性;以及指令匹配器模組62,其將關於相同協議之兩個不同指令資料訊息40匹配在一起。指令匹配器亦建立一用於經匹配之指令資料訊息40之結算指令。亦提供定時模組64以用於比較目前時間與一新建立之結算指令相關聯之時間。定時模組64亦可判斷一用於存取每一方之資源帳戶檔案30之定時窗目前是打開還是關閉。亦提供一指令資料庫66 以用於儲存未來執行之結算指令。指令執行伺服器22進一步包含一報告模組68以用於將資訊訊息傳送至相關方。最後在指令執行伺服器之核心處提供一指令檢查執行與更新引擎70。報告模組68耦接至指令驗證器60、指令匹配器62及指令檢查執行與更新引擎70。指令將被處理之方式係由指令檢查執行與更新引擎70之特定資料處理架構來判斷,且其在不同先前技術裝置之間變化(如下文所述)。
現參看圖5之流程圖描述指令執行伺服器22之操作方式。現更詳細描述經由在定位引擎70處執行指令(結算指令)並更新及報告更新之結果來接收、驗證及匹配指令資料訊息40的步驟。更具體而言,先前技術指令執行伺服器22之一般操作78在步驟80處開始,其中伺服器22連接至通信通道12且可接收指令資料訊息40。A方隨後在步驟82處發送一資料指令訊息40至伺服器22,其描述與B方之協議。類似地,B方在步驟84處發送一資料指令訊息40至伺服器22,其描述與A方之協議。在伺服器22本身處,訊息40被接收,且指令驗證器60在步驟86處嘗試驗證每一所接收指令40。若步驟88處之有效性檢查失敗,則在步驟90處將此情況告知報告模組68且在步驟90處將一報告訊息(未圖示)發送至未通過驗證之資料指令訊息40之來源。
否則,對於通過驗證之指令資料訊息40,在步驟92處指示報告模組68將一肯定訊息發送回通過驗證之指令訊息40之來 源,其指示指令資料訊息40被接收且通過驗證。
通過驗證之指令訊息40傳遞至指令匹配器62,且在步驟94處嘗試匹配描述相同協議之對應的指令資料訊息40。
指令匹配器62在步驟96處嘗試將不同的訊息40匹配在一起。若步驟96處之匹配檢查失敗,則在步驟98處將此情況告知報告模組68,且在步驟98處將一報告訊息(未圖示)發送至未經匹配之資料指令訊息40之來源,且程序在步驟100處結束。此失敗在此處極為簡單地展示,以便簡化對先前技術系統之解釋。然而,在實行中匹配失敗可能為僅在許多嘗試之後且也許在一設定匹配時間週期(可為若干日)期滿之後得到結論。
在步驟96處所判斷之經匹配指令訊息40係通知給報告模組68,報告模組68又在步驟102處將一匹配對指令資料訊息40之存在報告給該等經匹配資料指令訊息40之來源(在此情況下為A方及B方)。此外,指令匹配器62隨後在步驟102處建立一具有執行日期之執行指令(結算指令)。此執行日期係在步驟104處自經匹配指令資料訊息40中之任一者(因為其相同)之執行日期欄位來獲得。接著結算指令之執行日期在步驟104處與一執行時間窗(由定時模組64判斷)之目前日期及可用性進行比較。
若步驟106處所判斷之比較結果為結算指令現在不可執行,則在步驟108處將結算指令儲存於指令資料庫66中。資料庫66以規則間隔被檢查,且程序78在步驟110處等待,直 至達成該執行日期且打開該執行窗。通常,一執行窗每日可打開若干小時。
或者,若步驟106處所判斷之比較結果為結算指令現在可執行,則不儲存結算指令。
指令執行伺服器22之一般操作78之進行中的下一階段為在步驟112處將結算指令發送至指令檢查、執行與更新引擎70(亦稱為定位引擎)。定位引擎70與一組執行規則72相關聯。此等規則72判斷結算指令是否可執行,即,其判斷結算指令在資源帳戶檔案30及總計資源值32上之結果是否將可接受。一不可接受情形之實施例為特定資源帳戶檔案30或總計資源值32由於執行命令而將具有低於一預定金額之值。在上文提及之非限制***易結算系統實施例中,資源帳戶可為現金帳戶及證券帳戶,且總計資源值32可為一信用限額,其中資源之目前值提供某一信用金額,因為資源作為所提供的信用之擔保。
定位引擎70在步驟114處檢查若命令經執行則執行規則72是否仍將被滿足,即,對雙方之資源帳戶檔案30及總計資源值32所造成之影響是否將可接受。
若在步驟116處判斷執行規則未被滿足,則在步驟118處將一提示發送至報告模組,且報告模組在步驟118處產生且發送報告一不成功結果之訊息給失敗結算指令之雙方(例如,在此實施例中為A方及B方)。隨後,失敗結算指令在步驟120處 保留在定位引擎70中且在一稍後時間/日期重試(重複步驟114至126)結算。
或者,若在步驟116處判斷執行規則72被滿足,則在步驟122處執行結算指令。定位引擎70隨後在步驟124處以經執行結算指令之結果來更新資源帳戶檔案30中之目前位置,即,以實現資源轉移之後的正確餘額來更新資源帳戶檔案30及總計資源值32。最後,在步驟126處指示報告模組68在步驟126處產生並發送一將報告結算之成功結果之訊息給成功結算指令之雙方(例如,在此實施例中為A方及B方)。
結算指令之成功執行使先前技術指令執行伺服器22之一般操作78針對該單個指令關閉。然而,由於每日處理數百萬指令,因此程序78針對自許多不同方之伺服器連續接收之其他指令資料訊息40以繼續進行。
如先前已提及,結算指令將被處理之方式係由指令檢查執行與更新引擎70之特定資料處理架構來判斷,且其在不同先前技術系統之間變化。主要存在兩種不同類型之方法:批次程序及並行輸入匹配程序,現分別參看圖6及圖7來描述該等方法。
批次程序為標準循序更新方法,其中執行指令係儲存以用於循序處理且係以自動方式連續執行。此程序130在圖6中示意性說明,其中將含有一批次(循序的組)新指令(結算指令)之新指令檔案132連同主檔案134一起提供,該主檔案134儲存所有資源帳戶檔案30及任何總計位置32之目前位置。
如先前圖3中所述,每一結算指令識別協議相關之雙方、資源帳戶檔案30、為該等各方之間協議之主題的資源量,及執行的時間/日期。此類型之處理架構之一關鍵特徵為此等結算指令需按其相關之資源帳戶30之次序列出。通常,隨每一指令提供一序列密鑰,其有助於對照參考。
主檔案134亦使用上文提及之序列密鑰按次序列出資源資料帳戶30。主檔案與輸入資料檔案之間的此次序對應關係對於批次處理而言極為重要。
循序更新程式136係提供以判斷是否每一協議可由對應指令之結算來實施。在一處理引擎(未圖示)上實施之循序更新程式136使用一稱為匹配演算法之標準演算法。如上文陳述,該匹配演算法要求兩個輸入檔案(現存之主位置檔案134及新指令檔案132)以序列密鑰之相同次序來儲存。指令檔案132中所使用之密鑰稱為「交易」密鑰,且儲存於現存之主檔案134中之密鑰稱為「主」密鑰。
循序更新程式136界定邏輯以循序讀取兩個檔案132、134直至兩個檔案之末端。循序更新程式之結果儲存於新主檔案138中,該新主檔案138持有所有各方之資源帳戶檔案30及總計位置32之經更新位置。
循序更新程式136藉由讀取每一檔案132、134之第一指令或記錄而開始。關於一給予資源帳戶檔案30之所有指令係循序執行,其中資源帳戶檔案30之數值之每一改變係在執行匹 配演算法之處理引擎之記憶體中更新。一旦已完成針對一特定資源帳戶檔案30之更新(藉由用於下一指令之交易密鑰之改變來感測),則用於該資源帳戶檔案30之所得值隨後連同任何經更新總計位置32一起寫入至新主檔案138。針對每一不同的資源帳戶檔案30重複此程序,直至達到交易檔案132之末端。
在多個資源帳戶需要更新以執行一指令之情況下,使用一更複雜之方法。為了處置多個帳戶之更新,將更新分為若干階段。解決方案係僅在第一次運算中執行資源帳戶值之借記,將信用應用於對應資源帳戶之前在借記成功之情況下按資源帳戶的信用之次序報告該指令。儘管由於因資源帳戶之信貸被延遲而失敗之指令將存在問題,但此可藉由進行多次運算而解決。
循序更新程式136通常界定用以處置以下情況之邏輯:交易密鑰=主密鑰=>將目前指令應用於一資源帳戶檔案之目前主資料記錄=>將目前資源帳戶之新位置作為一經更新主記錄儲存於記憶體中=>讀取下一指令
交易密鑰>主密鑰=>將經更新主資料記錄寫入至新主檔案138=>復原主資料記錄(若可用)或讀取用於 下一主資料記錄之主檔案
交易密鑰<主密鑰=>儲存目前主記錄=>產生預設主記錄=>將指令應用於主記錄=>自交易檔案讀取下一指令或=>拒絕指令,因為對應主檔案資訊不存在,即主檔案134中未發現帳戶資源檔案30=>讀取下一指令
當此完成時,自交易檔案132讀取下一指令記錄,且再應用相同程序,直至交易密鑰變為大於目前主密鑰。
在此演算法中,記憶體中之單個程序獲得對新主檔案138的多次更新,此明顯提供指令之較快處理。限制在於需要在執行該程序(批次)之前將所有指令分組並分類。且所有指令需要在能夠將確認指令的執行之第一答覆訊息返回至各方之前處理所有指令。此外在一批次程序中,在執行匹配演算法同時資料不可用於其他程序。實時地提供對資料之存取,需資料庫更新。若直接完成,則此等資料庫更新消耗程序之總處理量。若在執行之後之一額外步驟(例如,一DB2載入公用程式)中實施,則其不利地在該時間過程當中阻礙對資料之所有存取。其結果為批次處理在執行時極為有效,但其由於在執行之前進行 分組及分類之要求而無法實時執行。
另一替代方法展示於圖7中,即先前提及之並行輸入匹配方法。在此方法下,由指令匹配器62產生之結算指令由複數個個別指令處置電腦或程序140、142處置。而且,一序列檔案處置程序144可處置儲存於指令資料庫66中之一批次指令。每一程序140、142、144具有其自身型式之直接更新程式146,其可讀取目前資源帳戶30之數值及總計資源值32,且產生用於主資料庫24中該方之資源帳戶檔案30的直接更新指令。提供單個指令執行管理器148以藉由自程序140、142、144所接收之指令做出資料庫24之更新的最終決定。指令執行管理器148使用該組執行規則72(見圖4),以提交用於執行之更新指令,或將其轉返以用於稍後執行。
執行規則72中指令執行管理器148必須實施之一個執行規則解決閉鎖之問題。如先前提及,閉鎖為對資源帳戶檔案30之存取被阻止之情況,因為其正處於用於另一更新指令之程序中。在實現中此意味著用於更新一特定資源帳戶30之競爭係藉由等待狀態之***,直至資源帳戶檔案30已自一先前更新指令釋放(即,已完成先前更新)來處置。以此方式,指令執行管理器148防止兩個不同的更新指令並行修改相同資源帳戶檔案30。
每一程序140、142、144並行執行且提供大於單個程序之頻寬,且此可導致較大之潛在處理量。更具體而言,當更新分布 於大量不同的資源帳戶檔案30上時,一並行系統係可擴充的。在此等情況下可藉由並行執行許多更新程序140、142、144來增加該系統之處理量。然而,當更新未較佳分布時,用以確保資料完整性之閉鎖程序之實施快速封堵系統可達到之最大處理量。當達到此限制時,執行又一更新程序並不增加總體處理量,因為其亦增加其他更新指令對於不可用(鎖住)之資源帳戶檔案30之「等待狀態」。
儘管此方法對於實時更新較優,但其在多數情形下遭受不良處理量。此係因為一般更新通常並非分布於大量不同的資源檔案30上。而是在許多應用中常見的係某些資源帳戶由許多不同指令所繁重地使用。舉例而言,在交易結算之領域中,常見的係50%之指令集中於5%之可用資源帳戶檔案30。在此等情況下,圖7之實時處理技術具有不良效能。
待考慮之另一重要問題在於失敗之指令再循環。此處,因為資源帳戶不具有滿足執行規則之所需的數值而無法在一特定時刻執行之任何指令僅被儲存以用於在一稍後時間再次嘗試執行。每一暫時失敗可被報告至指示方,其指示該指令可一旦資源帳戶條件已改變後隨即執行。多次失敗嘗試或一逾時週期之到期,可引起指令被報告為最終失敗。
此先前技術再循環程序可用於減少對執行引擎之新指令所提交之數量。藉由將指令保持為「待決」,有較大可能其將在條件改變時被處理。給予經處理之指令量,有極大可能性多數 再循環指令將被執行,而不必被報告為最終失敗。
然而此再循環導致執行引擎之處理量之問題,因為其因再循環程序而減慢。特定而言,在存在並行輸入之情況下,描述大的資源帳戶變動之指令常常失敗,因為其執行條件在再循環週期內(逾時發生之前)未達到。在存在循序輸入之情況下,失敗可導致需大量執行以處置失敗指令。
已進行許多努力以嘗試克服此等問題。而且專用於尋找對此等問題之解決方案之金錢及資源之金額相當多。儘管此等努力,但在指令處理架構中處理量對實時處理之問題仍存在。
本發明試圖克服上文提及之問題中之至少某些問題,且提供一用於實時處理及處置極高數量處理指令的改善系統。
在考慮本發明之其他更詳細目的之前,重要的係理解任何指令處理架構之某些重要特性且此等特性在下文陳述。
每一新系統將具有一特定處理量要求。處理量表示系統應在一預定時間週期內執行以遵守系統目的的指令數量。處理量可由每日、每小時、每分鐘或每秒之經處理指令數量來表示。當大於每秒100個指令時,處理量被界定為「高處理量」。
在實施一具有指令處理器之單個實例之處理架構的系統中,此處理器應能夠達成所需處理量。然而,在單個處理器無法達成此要求之情況下,具有並行處理指令之多個處理器實例應允許達成該目的。在此後情況中,總體處理量為每一實例所達到之處理量之和。若指令執行程序由多個連續步驟組成,則 總指令執行程序之處理量由最弱(最慢)步驟(諸如瓶頸)之處理量判斷。
一新系統之回應時間表示接收到來自第三方伺服器之進入指令執行請求與將相關答覆之發送回到該伺服器之間經過的時間。具有低於五秒之平均回應時間之指令處理系統可界定為「實時」系統。當執行該指令處理器之一單個實例時,回應時間可量測為處理該請求(讀取請求並執行指令)之時間及發送該答覆(產生答覆並發送答覆)之時間。若請求以高於系統之處理量之速率到達,則請求之排隊發生。在此情況下,必須將一請求在佇列中所花費之時間視為對該請求之總系統回應時間之一部分。當指令處理器包含多個處理步驟時,系統之總回應時間係計算為該多個步驟中每一者之回應時間之和。
通常,每一指令處理系統與數百方之伺服器一起操作,且具有於局部儲存之用於每一方之對應資源帳戶。因為每一方可具有許多資源帳戶(常見為數十及數百個),所以可能與指令相關之資源帳戶均勻分散於此等許多資源帳戶檔案上。然而,在指令處理系統之某些特定應用中,要求為一小組資源帳戶檔案頻繁涉及於指令中,以使得其以高頻率更新。指令處理系統之集中度判斷一小組資源帳戶檔案頻繁涉及於經處理指令中之程度。有50%之指令更新5%之資源帳戶檔案的指令處理系統界定為具有「高集中度」。
鑒於上文所述之特性,本發明之另一更特定目的為提供一種 指令處理系統,其實時操作(如上文界定),具有高處理量(如上文界定),且可處置高集中度(如上文界定)。
本發明部分地在於瞭解當在可處置高指令集中度之實時指令處理系統中嘗試達成極快處理量時先前技術方法之限制。本發明人已開發一種新的混合資料處理架構,其在必要時利用分布式處理之速度且在其他時間利用循序處理之確定性,以提供一用於大數量指令之最佳資料處理架構,其可處置高集中度且可實時操作。
根據本發明之一態樣,提供一種用於在處理時段(processing session)過程當中實時處理及處置極大數量處理指令的系統,每一處理指令指定相關於兩個不同實體之資源帳戶資料檔案以及將在該等檔案之間交換之資源的量及類型,該系統包含:複數個預載器,每一預載器係配置成獲得相關於該等指令之參考資料,該參考資料指示該等指定資源帳戶資料檔案30中每一者之目前值,且該複數個預載器係配置成並行操作以自一主資料庫讀取該參考資料以用於複數個相應所接收指令;一強化指令佇列,用於將複數個該處理指令連同其相應預載參考資料一起排隊;一執行引擎,配置成使用該接收參考資料來循序判斷每一接收指令是否可在該等相關資源帳戶檔案之目前值下且針對每一可執行指令來執行,以產生一更新命令;以及一更新器,回應於來自該執行引擎之該更新命 令以用於每一可執行指令之結果來更新該主資料庫,該更新器之操作與該執行引擎之操作係解除耦合(decouple)。
在達成本發明時,發明人首先意識到下文說明之各點。
為提供一實時回應,本發明之指令處理系統需能夠處理及回應個別請求。因此,即便純「批次導向」解決方案係極有效,但不可能實施此解決方案。
本發明之指令處理系統必須達到一極高處理量,且因此,應在一短時間週期內對儲存之資源帳戶檔案執行大量更新。在傳統先前技術並行輸入匹配方法(圖7中描述)中,實時處理係可能的,且可藉由並行執行指令處理器之多個實例而達成增加之處理量。然而,由於系統處理高指令集中度之需要,並行執行指令處理器之多個實例將僅導致指令之鎖住增加,其將不利地減小處理量。
本發明人已意識到,對先前技術方法之特徵之一新的特定組合可導致一改善之解決方案,其滿足本發明之目的。該新的混合解決方案藉由循序處理指令而防止對指令之鎖住影響。此情況一般將導致之處理量的減少藉由如下做法而消除:將實際處理削減至一淨最小值,即僅要求指令處理器做出指令本身是否可執行之決定。帳戶資源檔案之更新與指令處理器之做決定係解除耦合且利用其之外的資源,藉此增加指令處理器之處理量。而且,藉由用做出處理決定所需之所有資料的預載指令,耗時之資料庫存取係由指令處理器阻止。
因為本發明係基於執行單個循序執行引擎,所以其要求將參考資料預載至處理指令。若無此情況,則在預載器的下游執行之單個循序執行引擎將不能夠達到所要之高處理量。此係因為執行引擎必須讀取許多參考資料之數值以便處理指令,且若讀取動作係對主資料庫實施,則此在處理器循環方面代價極高。為達成所要之總體處理量,將預載功能實施為多實例組件,此意味著較佳提供複數個預載器以用於讀取主資料,其中對並行處置之複數個指令中每一者提供一個預載器。且該等預載器可具有有助於減輕瓶頸之多個輸入佇列(實例),其中該等輸入佇列中之每一者係配置成將一專用輸入提供至該複數個預載器中之對應一者。並行處理之可擴充性未被鎖住問題所危及。此係因為預載器操作係唯讀的,其無法引起鎖住問題。
主資料庫僅由更新器實時更新。預載器之唯讀程序將因此有利地不產生資料庫鎖住。預載器僅在嘗試讀取已由更新器之更新程序所鎖住的資源帳戶檔案時被延遲。預載器效能亦藉由加入並行執行之資料讀取功能性之新實例而有利地可擴充。
該系統更包含一目前條件表,該目前條件表儲存於該執行引擎處,且配置成用執行指令對該等資源帳戶檔案之結果進行更新,使得獲得該等更新資源帳戶檔案中每一者之一更新實時值之表示;其中該執行引擎針對後續之循序指令處理來配置成使用優先於來自預載器之參考資訊之該目前條件表中之資訊以用於一特定資源帳戶檔案。
其中每一預載器包含一主資料收集器,每一主資料收集器係配置成自該主資料庫來讀取。因為其為一非同步程序,所以參考資料之擷取值可能為陳舊。此並非一問題,因為執行引擎在其首次接收到資訊時知道主資料為精確的,且其儲存於目前條件表中。若執行第一指令,則做出在目前條件表中之資源帳戶檔案之數值的更新。然而,亦參考相同資源帳戶檔案之後續指令有利地使用目前條件表中之數值,以具有一用於特定資源帳戶檔案之精確更新值而非主資料庫之陳舊值。
為確保目前條件表之儘可能快的實施,執行引擎較佳包含一用於儲存該目前條件表之高速局部資料記憶體。
系統可更包含一初始輸入佇列,該初始輸入佇列配置成自複數個不同資源接收實時指令及批次指令,且將該等指令排隊以用於輸入至該複數個預載器。而且,該初始輸入佇列之多個實例可提供以有助於處理量。初始輸入佇列係較佳地配置成向每一進入指令指派一優先權。
當處理一指令之結果導致違反一組執行規則時,處理指令失敗發生。該等規則可提供不可接受之處理結果的定義或臨界值。舉例而言,若一指令導致資源帳戶之金額低於零,則該指令可能不可接受。對於某些資源帳戶,當總計資源值低於一預定等級時可達到臨界值。
執行引擎係配置成根據每一指令之優先權處理指令。優先權控制亦適用於可再循環之失敗指令。為此,執行引擎包括對失 敗指令之再處理,該等失敗指令在指令相關之該等資源帳戶中之一之餘額上產生改變(通常為增加)時可變為能成功執行。
系統在處理時段內操作,通常每日一個時段。自操作日觀點而言,時段之開放觸發所有預儲存之指令之執行,該等指令在系統未操作時不能被處理。在此初始時間週期過程當中,系統行為較為批次導向。然而,即使在時段開放時期過程當中,當批次指令由系統接收以進行處理時,系統仍能夠實時處理任何新的進入非批次處理指令,向其指派優先權,且根據其相關優先權對其循序以進行處理。
較佳地,執行引擎包含一再循環模組,該再循環模組用於將失敗處理指令儲存於一高速局部記憶體中,且用於在由該失敗處理指令所識別之資源帳戶檔案中之一更新已發生之後呈現該等失敗處理指令以用於再執行。此等失敗處理指令可較佳地優先化以改善再循環過程當中成功執行之機率。更佳地,系統可組態以向具有大資源帳戶信貸或借記變動之指令給予高於具有較小變動之指令的優先權。
一旦完成由一時段開放所觸發之批次指令,則系統之行為為純實時的。在此時間過程當中,一特定資源帳戶檔案之數值或一特定總計資源值之任何增加皆導致未能結算之所有先前指令再循環,因為該特定資源帳戶檔案之數值或特定總計資源值過低。此再循環較佳地根據如上文所述為再循環所儲存之每一指令之預先定義優先權而執行。
較佳地,該再循環模組係配置成按該等失敗指令之優先權之次序儲存該等失敗指令,且首先呈現最高優先權指令以用於在再循環程序過程當中再執行。
因為執行引擎在其記憶體中保持所有失敗指令,所以資源帳戶檔案之等級或總計資源等級之任何增加皆可較佳地觸發等待其增加之所有失敗指令的再循環。執行引擎較佳地將此失敗指令清單維持在其局部記憶體中以等待參考資料之增加(改變),且相對容易按優先權次序處理該指令清單。
該再循環模組可配置成儲備資源帳戶檔案之目前值以用於該清單中之一指令,且將此儲備金額用於在一再循環程序過程當中滿足該指令之要求。
將可用資源儲備在用於大指令之資源帳戶中以避免較小指令使用此金額,增加了再循環中之結算效率。舉例而言,一指令需要50且餘額為30。結算以缺少20而失敗。儲備30將防止執行僅需要20即可結算之較小指令。目標為若20之接收發生(將由另一些指令之執行提供)則向50之較大指令提供執行的機會。此儲備係選擇性為失敗指令之維持。再循環引擎嘗試執行失敗指令,其在給予資源帳戶檔案之餘額上產生增加時可增加儲備金額。
如先前已陳述,先前技術執行引擎中之指令再循環已導致執行引擎之總體效能減慢。上文所述之動態再循環顯著地改善效率,使得執行引擎之總體效能事實上快於根本未提供再循環功 能之情況。
因為執行引擎在其記憶體中保持資源帳戶檔案之目前值及總計資源等級的一更新精確影像,所以任何儲備之需要皆可在局部記憶體本身中相對容易地達成。因為在執行引擎之操作中並無並行性,所以指令係按優先權順序接收,從而允許最高優先權指令首先儲備。
再循環模組可配置成呈現失敗處理指令以用於再執行一預定最大次數,且若該處理指令仍未執行,則該再循環模組可配置成取消該失敗指令。
實施本發明之系統已經建立以達成所需目的。鑒於所使用之架構,該系統具有以下技術特徵: 該系統實時操作。當一實體發送一指令時,通常在三秒內接收到反饋(指令的成功或失敗)。此經過時間包括在該實體之通信基礎結構與系統平台之間輸送所接收指令及一答覆訊息所需的時間及執行指令之處理所需的時間。此時間分為:一秒用於將訊息輸送至處理平台,一秒用於處理平台內之執行,且一秒用於將答覆訊息輸送回指示方。當然應瞭解,輸送時間可略微改變,因為其取決於網路傳輸負荷及操作條件。因此,上述時間表示用於一指令之向SSE及自SSE之平均輸送時間。
實施本發明之系統達成高處理量。更具體而言,該系統能夠在峰值時間達成每秒500個指令之處理量,峰值時間通常係在一處理時段之開放時(其中批次指令被接收)發生。
實施本發明之系統達成稱為「同步終結」之物。此意味著當執行引擎在處理一指令時,對所涉及實體之所有受到影響之資源帳戶及總計資源值的更新係作為相同邏輯工作單元之一部分而實施。
實施本發明之系統係組態而使得其他應用程式能夠存取資源帳戶值之主資料庫。在系統活動時此可用性對外部系統之操作係有利的,該操作亦需參考主資料庫。
本發明之架構之設計獲得一不具有鎖住親和性之系統。對主資料庫所實施之更新係以當執行引擎以高速率更新相同資源帳戶檔案時效能不受影響的方式來管理。本發明之此特徵在存在更新之集中的情況下(例如在特定總計資源值可一秒更新50次的情況下)為一真正優點。
較佳地,該系統更包含一定步速模組,該定步速模組用於判斷該執行引擎之處理指令處理量,且將等待狀態應用於一指令注入程序(一佇列),以將處理指令之載入速度減慢至小於該執行引擎之處理量。此外,在執行引擎具有若干處理模組(每一者具有多個實例佇列以用於載入指令)之情況下,該定步速模組係配置成將等待狀態應用於執行引擎內任何處理模組之任何佇列,以將載入指令之速度減慢至小於執行引擎本身之處理量。
在訊息排隊設計中,系統應避免在任何指令佇列中儲存過多指令。事實上,訊息排隊系統係設計以輸送指令而並非將其保 持為資料容器。此最後功能性應儲備於資料庫。確實,當將許多指令排隊時,指令佇列無法將指令直接保持於記憶體中。而是指令佇列在此情況下將必須將該等指令卸載至磁碟上。因此,處理量將嚴重減少。
為避免在系統中儲存過多訊息,定步速模組控制新指令載入系統中之速度。若載入速度高於排隊設計之最弱鏈結之處理量,則排隊將發生。為控制載入速度,稱為「定步速」之睡眠時間可在每一提交之後執行以防止負荷處理量超過預先定義速率。
較佳地,該執行引擎包含一用於報告所接收指令之執行之結果的報告模組,該報告模組係配置成輸出用於其已判斷可執行之每一指令之更新命令及用於每一失敗指令之一通知指令。
該系統可更包含一終結佇列,該終結佇列配置成自該報告模組接收該更新指令及該通知指令,且將該更新指令及該通知指令排隊。
主資料庫更新與執行引擎做決定之解除耦合係本發明之架構中與先前技術之主要差異。將更新指令置於終結佇列中係指令被宣告為最終的方式。多數先前技術批次系統在「全部或無」基礎上工作。因此,終結係在批次結束時達到。多數先前技術實時系統藉由提交主資料庫中之改變而使其指令成為最終的。在本發明中,只要執行引擎將一更新指令提交至終結佇列內,則到達終結。此意味著在執行指令與主資料庫中之資源帳 戶檔案之相關值之間不存在實時同步。
此處理架構之解除耦合特徵意味著由該複數個預載器所讀取之參考資料可能過期。本發明確保在參考資料首次被提供至執行引擎時,該參考資料之數值精確反映參考帳戶及總計參考值之實際目前狀態。為此,系統較佳地需要確保反映指令的執行之所有更新命令在開始一處理時段之前(即,在開始預載器及執行引擎之操作之前)皆反映於主資料庫中。換言之,應確保所有佇列在開始處理時段之前皆為空的。
較佳地,該報告模組係配置成在提交事件發生之前臨時儲存複數個更新指令,且在該提交事件發生後輸出該複數個儲存之更新指令,其中該提交事件表示由該執行引擎對一個實體工作單元之完成。
藉由設計,系統處理步驟包含複數個步驟。系統之總體處理量受到最弱鏈結限制。當程序中之一步驟經由並行性而具有可擴充性時,其不可能為最弱鏈結(效能可一直藉由同時執行又一步驟而提高)。因此,系統之最弱鏈結為循序執行引擎,因為其為系統之僅有的而不支援並行性之組件。
為了改善執行引擎之效能且因此改善系統之效能,必須採取所有措施藉由避免不需要之外部資料存取而將執行引擎之操作儘可能保持為在CPU限度內。藉由使用複數個預載器,執行引擎所需要之所有讀取資料皆與指令一起預載,且在輸出中,待實施之所有更新指令係成束為一單個指令訊息。總之,執行 引擎之外部資料存取限於輸入中之一個持久訊息及輸出中之一個持久訊息。加入其他資料存取係可能的,但其將不利地減小系統之總體處理量。
為了改善效能,必須採取所有措施以避免消耗CPU循環來執行實際指令執行以外之邏輯。舉例而言,CPU循環在提交時間過程當中消耗。因此,執行引擎實施一實體工作單元,其成束一組邏輯工作單元(在執行提交程序之前執行多個進入指令(在局部記憶體中))。在50之提交頻率下,每秒500個指令之處理量導致每秒10個提交而非500個。提交程序表示用於執行引擎之實體工作單元。50之提交頻率意味著由於進入給予所有所實施更新之最終的技術提交階段(進入指令之實體刪除及報告訊息之實體寫入),50個處理指令被執行且報告。
較佳地,系統更包含一路由架構,該路由架構係配置成將一指令分布至複數個同時操作之初始輸入佇列或更新實例佇列(隔離輸入佇列)。此使得指令能夠在可用的複數個不同佇列或處理元件(諸如在預載器及更新器中)均勻分布。
該路由架構可較佳配置成向一指令指派一描述該指令相關之資訊之類型的指令名稱及一提供識別該指令之唯一密鑰的工作負荷平衡器密鑰。在此情況下,該路由架構可配置成藉由使用該接收之指令名稱及工作負荷平衡器密鑰而選擇該等輸入佇列或更新實例中之一者。
較佳地,該路由架構包含一工作負荷平衡器,該工作負荷平 衡器與該路由架構組合配置成藉由使用該接收之指令名稱及工作負荷平衡器密鑰而選擇該等初始輸入佇列或更新實例佇列(即隔離輸入佇列)中之一者。
對於系統之使用並行性達成處理量的每一組件(諸如預載器及更新器),工作負荷藉由工作負荷平衡器及路由架構之手段而正確分布於其每一者之間。然而,此分布有利地不產生對界定進入指令將執行之次序之循序規則的任何違背。
路由架構及工作負荷平衡器能夠將工作負荷分布於一組佇列(例如,主資料隔離佇列)上且保證具有相同循序密鑰之指令係路由至相同佇列。該架構能夠藉由分析可用之實例數量及藉由分散傳出訊息而不打破循序約束,在目標程序之組態上直接調適其本身。
換言之,工作負荷平衡器係配置成將一給予工作負荷平衡器密鑰一直鏈結至相同特定目的地,以確保相關於一特定資源帳戶資料檔案之所有指令一直路由至該複數個佇列中之相同一者。
較佳地,系統更包含一定界器架構,該定界器架構回應於在一給予時間該處理時段之關閉而配置成將一訊息發送至在執行引擎之輸出處所提供的佇列之輸入並等待其回應,且將又一訊息發送至更新器之輸入佇列並等待其回應,該等循序回應之接收指示以在該處理時段關閉之前執行之所有處理指令之結果更新主資料庫。
在系統包含一用於報告每一處理指令之結果的調度器模組之情況下,較佳地該定界器網路亦係配置成將一訊息發送至該調度器之輸入佇列,且等待相應反饋,以確認用於在該處理時段關閉之前執行之處理指令的報告訊息已全部發送。
換言之,定界器架構將一訊息發送至執行引擎之輸出,即終結佇列。一旦其接收到對該訊息之回應,則此指示在定界器訊息的到達之前儲存於終結佇列中之所有指令已經處理。隨後,定界器架構可將一訊息發送至調度器之每一實例且等待來自其每一者之對應反饋。當來自調度器之所有實例已將其相關反饋發送至定界器架構時,定界器架構知道所有調度程序(指令、執行、結果及報告)已完成。定界器架構可隨後在更新器上開始定界程序。此係藉由將一訊息發送至主資料更新器之每一實例且等待所有相關反饋而進行。
當自主資料更新器之所有實例接收到反饋時,定界器知道相關於在截止期之前由定位引擎所執行之處理指令的所有指令更新係現在反映於主資料庫中。完成定界器工作流程且一時段活動報告可由調度器產生。
根據本發明之另一態樣,提供一種用於在處理時段過程當中實時處理及處置極大數量處理指令訊息的系統,每一處理指令指定相關於兩個不同實體之資料檔案以及將在該等檔案之間交換之資源的量及類型,該系統包含:複數個預載器,每一預載器係配置成獲得相關於該等指令之參考資料,該複數個預載 器係配置成並行操作,以自一主資料庫讀取該參考資料;一指令訊息佇列,用於將複數個處理指令訊息連同其相應獲得之參考資料一起排隊;一執行引擎,用於循序執行每一指令訊息,該執行引擎使用預載之參考資訊,以判斷該指令訊息是否可在相關檔案之目前條件下而非使用任何主資料庫存取而執行;以及一目前條件表,配置成用該等執行指令在該等檔案上之結果來更新,以建立該等相關檔案之更新實時位置;其中該執行引擎針對後續之循序指令處理係配置成使用優先於來自該複數個預載器之參考資訊之該目前條件表中之資訊,以用於一特定資料檔案,前提為該資料檔案在該處理時段過程當中已由執行引擎更新。
本發明之此態樣係針對以下方法:藉由在記憶體中具有最後資源帳戶值之實時可更新複本以用於執行引擎,避免主資料庫之更新。此係一重要設計特徵,其克服先前技術之實時中大數量處理指令之處理的許多問題。
根據本發明之另一態樣,提供一種用於在處理時段過程當中實時處理及處置極大數量處理指令訊息的系統,在該處理時段中指令係以不同速率非同步接收,該系統包含:複數個處理模組,用於在該等指令訊息上實施不同類型之處理,其中該等處理模組中之一者包含一配置成循序處理該等指令訊息之執行引擎;複數組指令佇列,每一組係提供以將對相應資料處理模組之輸入排隊;一定步速模組,用於判斷該執行引擎之處理指 令處理量且將等待狀態應用於任何指令佇列,以將處理指令之載入速度減慢至小於該執行引擎之處理量。
如先前陳述,一種用於在處理時段(其中指令係以不同速率非同步接收)過程當中實時處理及處置極大數量處理指令訊息的系統,需要避免在任何指令佇列中儲存過多指令。訊息需要被輸送而非儲存(儲存為資料庫之功能)。若排隊的指令之數量變為過大,則其必須卸載至磁碟,其為直接減少處理量之耗時程序。
為避免在系統中儲存過多訊息,定步速模組有利地控制新指令載入系統之速度。若載入速度高於排隊設計之最弱鏈結(在此情況下為循序執行處理器)之處理量,則排隊發生。為控制載入速度,稱為「定步速」之睡眠時間在每一處理時間單元之後執行以防止負荷處理量超過預先定義速率。
根據本發明之另一態樣,提供一種用於在處理時段過程當中實時處理及處置極大數量處理指令訊息的系統,每一處理指令指定相關於兩個不同實體之資料檔案以及將在該等檔案之間交換之資源的量及類型,該系統包含:複數個預載器,每一預載器係配置成獲得相關於該等指令之參考資料,該複數個預載器係配置成並行操作,以自一主資料庫讀取該參考資料且將該參考資料連同該指令訊息一起輸出至一執行引擎;該執行引擎,其係配置成循序執行每一指令訊息,該執行引擎使用預載之參考資訊,以判斷該指令訊息是否可在相關資源帳戶檔案之 目前條件下而非使用任何主資料庫存取而執行;以及一高速局部記憶體,用於儲存一目前條件表,該目前條件表係配置成在該等檔案上之執行指令之結果進行更新,以建立該等相關檔案之一更新實時位置;一再循環模組,用於將失敗處理指令之清單儲存於該高速局部記憶體中且用於實施一再循環程序,其中在由該失敗處理指令識別之該表中該等資源帳戶檔案之更新已發生之後,該等失敗處理指令係呈現以用於再執行。
此動態再循環發明之優點已在上文關於一再循環模組而描述,且因此此處不再重複。
現將參看附圖而描述本發明之特定具體例。
現參看圖8至12描述根據本發明之具體例之處理平台150。處理平台150常駐於指令執行伺服器22內,指令執行伺服器22類似於參看圖2及4之介紹中所描述之指令執行伺服器,且在一般功能上等效於先前技術指令執行伺服器22。更具體而言,下文描述之本具體例之處理平台150將取代圖4所示之先前技術指令檢查、執行與更新引擎70。
如圖8可見,處理平台150包含四個主要組件:複數個預載器152、定位引擎154、調度器156及更新器158。此等組件如圖8中陳述與下文所述之排隊及其他功能模組一起配置。
預載器152可對所有各方之資源帳戶檔案30及總計資源值32之主資料庫24進行唯讀存取。應瞭解在圖8中,為方便起 見,將主資料庫24展示為預載器152之一部分。然而應瞭解,預載器152不包含主資料庫24,因為系統中僅有一個主資料庫24。事實上,每一預載器152用以自其自身之專用初始輸入佇列164中存取指令,其包含用於自主資料庫24獲得所需資訊之主資料收集器182(下文描述),且將結果輸出至強化指令佇列166。每一預載器152包含一主資料收集器182(然而為簡明起見圖8僅展示共兩個主資料收集器)。資料收集器182為處置進入結算指令之模組,其中每一進入命令被指派給單個主資料收集器182。主資料收集器182之功能係自主資料庫24讀取該命令之適當主資料,且將此等資料與原始結算指令組合在一起以形成一強化指令(未圖示),該強化指令自相應預載器152輸出。預載器152(且因此主資料收集器182)之數量可擴充,因為其全部並行實施其操作而無任何資料庫衝突(諸如鎖住),因為其實施唯讀資料庫操作。儘管主資料庫24恆定在更新,但藉由分離主資料庫更新及讀取功能且亦不要求該讀取資源帳戶值30在處理時段中之第一讀取之後為精確而避免此等先前技術問題。
定位引擎154包含單個實例邏輯處理器184及儲存於處理器之記憶體中的更新主資料記錄表186。更新主資料記錄表186包含複數個檔案30a,其對應於主資料庫中之資源帳戶檔案。然而,如圖11可見且如稍後解釋,並非所有資源帳戶檔案30具有對應檔案30a。
單個實例邏輯處理器184接收在預載器152中所建立之強化指令,且以每次一個之方式處理此等強化指令,以判斷是提交還是轉返強化指令為基本之結算指令。本質上,若用於每一方之資源帳戶檔案30之數值及總計資源值32在結算指令執行之後將為可接受(即遵守執行規則72),則接受結算指令。為了做出此決定,單個實例邏輯處理器184以自可接受結算指令得出之每一資源帳戶檔案30之最後更新值來持續更新該更新主記錄記憶體表186之對應檔案30a。使用優先於後續接收之強化指令中含有之對應值之資源帳戶檔案30之此等更新值。定位引擎154之輸出為輸入至定位引擎154之結算指令之清單,其具有指令是否可接受之指示,即其是否應被提交或是否其不可接受(即,其應轉返)。另外,經轉返之指令被保持且可再循環,且此在稍後詳細描述。並非一指令之主題的彼等資源帳戶檔案30在主記錄記憶體表186中無對應物,且因此記憶體之大小係小於資料庫之大小。
調度器156包含調度器程式模組188。調度器程式模組188接收自定位引擎154所輸出之經處理結算指令之清單,且將該處理之結果(提交或轉返)報告於與結算指令相關聯之各方。對於轉返指令,失敗之原因係在回應訊息中陳述。對於提交指令,其報告為成功處理之結算指令、且此外其被傳遞至更新器158。
更新器158包含複數個主資料更新器190,其每一者可存取 主資料庫24之一唯一部分。為簡明起見,圖8展示三個主更新器190,其存取主資料庫之三個部分24a、24b、24c。然而在此具體例中,此為平台150之一可擴充部分,以便提供大量主更新器190及資料庫24a、24b、24c之相關聯唯一部分。成功結算指令分布於主更新器中的準確方式在稍後描述。
對處理平台150之輸入係來自多個序列檔案處置程序160,其每一者提供數個批次之結算指令160作為輸入,及一或多個個別指令處置電腦或程序162(但在此具體例中僅展示一個),其處置實時接收到且將實時處理之結算指令。
排隊模組提供於處理平台150之主要組件之間。在某些情況下,此等佇列充當一用於自一同時程序域轉換為一循序程序域(反之亦然)的手段。更具體而言,提供複數個初始輸入佇列164作為對該複數個預載器152之輸入,以排隊非同步結算指令中之任一者,該等非同步結算指令可自多個序列檔案處置程序160及個別指令處置程序162接收。提供強化指令佇列166以用於對照預載器152之主資料收集器之同時動作的結果,並將此等結果置於一循序域中以用於輸入至定位引擎154。定位引擎154之輸出為終結佇列168,其亦充當對調度器156之一輸入。最終,複數個主資料隔離佇列170提供於調度器156之輸出與更新器158之多個輸入之間。來自調度器156之另一輸出係至答覆佇列172,其提供返回指令處置程序162之實時訊息。
為避免疑惑,應瞭解初始輸入佇列164、強化指令佇列166、終結佇列168、主隔離佇列170及答覆佇列172如圖8中清楚展示可全部由多個實例(即,並行操作之多個佇列)提供。
提供又三個模組以幫助指令流經處理平台150。定步速模組174將指令自批次程序160排隊之速率調節為低於平台150之處理量之最弱鏈結。藉由此做法,平台150中之佇列一直幾乎為空的。
路由架構175用於將指令經由工作負荷平衡器176路由至一佇列。該路由架構為靈活的,因為其可改變路由之不同態樣而不變更所接收指令之定序。
工作負荷平衡器176用於將指令之工作負荷分布至一組佇列上,且確保具有相同定序密鑰(稍後描述)之指令/命令路由至相同佇列。
定界器架構模組178用於確保由定位引擎154實施且在一給予截止時間及日期之前已寫入至終結佇列168的所有處理係反映於主資料庫24中且反映於確認更新之實時訊息中。
現參看圖9,現描述處理平台150之總操作程序200。程序200以在步驟202處自非實時批次檔案160或自實時個別指令處置程序162接收結算指令來開始。非實時批次檔案可例如藉由重複儲存具有特定未來執行日期之指令而建立,且該批次係為在該特定日期到來時執行而建立。此處使用之術語「批次」亦不暗示記錄必須以任何特定次序來配置。對於本具體例,一 批次內之結算指令之排序並不重要。而是該術語僅用於表示一結算指令之集合。
程序200以在步驟204處所接收指令在初始輸入佇列164中排隊以用於後續輸入各別預載器152而繼續。此排隊204將結算指令流自非同步並行輸入域轉換至同步循序域。隨後在步驟206處指令由複數個預載器152處理以自主資料庫24獲得每一指令的參考資料。此程序係使用多個主資料收集器182(每一預載器152一個)並行實施。
對於每一結算指令,所得資訊係對照以在步驟208處形成一強化執行指令,其含有結算指令本身及定位引擎判斷該指令是否可在不違反執行規則72之情況下執行所需之所有參考主資料庫資料的強化執行指令。所有強化執行指令亦在步驟208處置於強化指令佇列166中。再者,強化指令佇列166用以將並行操作之多個主資料收集器182之輸出轉換為待處理之循序強化結算指令之清單。
定位引擎154隨後在步驟210處循序按次序處理每一排隊強化結算指令。此程序之細節稍後描述。然而,在步驟212處關於結算指令是否可在違反規則72之情況下實施的判斷係在此做出。若答案為否定,則結算指令在214處再循環,且一通知調度器訊息在步驟216處產生。該訊息指示結算指令為不成功,但在未來在其被再循環時可能成功。
若在步驟212處答案為肯定,則結算指令在步驟218處執 行,且局部儲存之更新主記錄記憶體表186之對應檔案30a以用於該結算指令中涉及之各方之資源帳戶檔案30及總計資源值32的新值進行更新。經執行結算指令隨後在步驟220處儲存作為終結佇列168中之更新執行指令,以用於饋送至調度器156且用於後續傳遞至更新器158。儘管圖9中未圖示,但再循環指令亦在終結佇列中具有一條目。此等失敗指令亦置於終結佇列中,但僅用於報告目的且其並不傳遞至更新器158。
調度器156讀取儲存於終結佇列中之指令,且在步驟222處建立報告訊息,該等報告訊息將發送至由結算指令所識別之各方(無論該指令是否成功)。此等訊息亦在步驟222處發送至答覆佇列172,以用於實時輸出至結算指令之一方之指令處置程序162。隨後答覆佇列中之訊息在步驟224處輸出。
對於終結佇列168中之成功執行之更新執行指令,調度器156亦在步驟226處將此等更新指令傳遞至該複數個主資料隔離佇列170。如稍後將詳細描述,此程序涉及來自工作負荷平衡器176及定界器架構178之輸入。
最終,主資料庫24之指派於每一主資料更新器190之部分24a、24b、24c在步驟228處由更新器158更新。
現更詳細描述處理平台150之關鍵組件及其功能性。
初始輸入佇列164係平台150之公用介面。其允許將來自個別指令處置程序162之輸入流(針對此,實時期望一答覆)與來自多個序列檔案處置程序160之批次流(針對此,期望一極高 處理量)合併。定步速模組174控制對初始輸入佇列164之輸入。定步速模組174將批次指令之載入速度限制為低於平台之最慢處理量組件,該組件通常為定位引擎154。對於批次指令,載入速度需受到限制,以避免在初始輸入佇列164中建立一積欠記錄(backlog)。來自個別指令處置程序162之載入速度受到使用者電腦之輸入新指令之實時能力的限制。載入初始輸入佇列164之此控制應用於平台150中之所有佇列。
定步速模組174在處理一群指令(例如自主資料庫或檔案基礎批次處理之提取)時啟用。在圖8中,定步速模組174用於流程之頂部,循序檔案與初始輸入佇列164之間。其功能類似於巡迴控制(cruise control),因為其限制批次指令向初始輸入佇列164中所注入之速率,以便避免指令流中之排隊(最弱鏈結步驟處)。
控制平台150中之佇列輸入速度存在兩個主要原因。第一原因為訊息佇列164、166、168、170實際上為傳送層且並非資料容器。限制了可儲存於一佇列中之訊息或指令之數量。建立一積欠記錄可導致佇列充滿的條件,從而阻止任何載入程序對寫入於佇列。而且,當在一佇列中儲存大量訊息時訊息排隊效能降低。此係因為常常需要訊息資料之磁碟上之卸載。
控制載入程序之速度的第二原因為確保來自個別指令處置程序162之實時指令將不會在一組批次指令之後排隊。當一實時請求係排隊時,用於個別指令處置程序162之回應時間無法 匹配實時回應要求,該要求係設定於兩秒之最大回應時間。
定步速係由兩個後續提交之間的最小延遲所界定。在執行一提交之後,計算在執行提交之時間與執行前一提交之時間之間的差量時間。
實例:目前提交=2007-07-01-09.05.04.224335
前一提交=2007-07-01-09.05.04.100635
2個提交之間的經過時間(差量)為0.123700。
若兩個提交之間的定步速為0.5秒,則0.3763秒之延遲將執行。若提交頻率為50且定步速為0.5秒,則預期處理量為100個指令。
對初始輸入佇列164之輸入由達到訊息路由功能之路由架構175及工作負荷平衡器176來處置,其中一工作負荷平衡技術架構係提供以用於將訊息均勻分布於一預先定義組之初始輸入訊息佇列164上。
應瞭解,來自一批次檔案160之指令或來自一實時通道162之指令之間並無差異。在用於平台150之一操作時間窗(操作時段)之開放時,所有待決之儲存指令將被定序且注入初始輸入佇列164中。定序規則亦應用於在執行開放注入時實時進入之指令。實時指令必須基於其優先權而注入初始輸入佇列164。當用於操作時間窗之開放的程序完成時,進行中之定序係為時間基礎。參考同一方之同一資源帳戶檔案30的兩個指令必須注入於同一初始輸入佇列164上(以便一個接一個進行 處理)。
對於多個初始輸入佇列164,並行執行此等實例對於處置在例如一處理時段(操作時間窗)開放時所呈現的大量初始指令係重要的。此處,路由架構175負責將指令載入至複數個初始輸入佇列164中,且此使得工作負荷平衡器176能夠在初始輸入佇列164之間均勻分布工作負荷。
預載器152中每一者係配置成自初始輸入佇列164中之對應一者擷取結算指令。其目的為分析該進入之結算指令,以便自主資料庫24擷取所有參考資料,定位引擎154將需要該參考資料以判斷是否執行該結算指令。該參考資料將為結算指令中所涉及之任何資源帳戶檔案30之目前值及結算指令中所涉及之各方的總計資源值32。此擷取之資料隨後用於產生增強指令,增強指令不僅含有該進入之結算指令而且含有自主資料庫24所擷取之所有參考資料。
圖10詳細展示預載器152中每一者之操作。顯然,每一預載器實例154獨立且並行操作,以助於較大的處理量。
預載器154之操作程序240以在步驟242處自專用於該預載器實例154之初始輸入佇列164讀取一結算指令來開始。預載器實例154之主資料收集器182隨後在步驟244處確定每一方之資源帳戶檔案30及用於該方之總計資源值32的資料庫讀取。一旦已計算出所有此等讀取指令,則資料庫讀取在步驟246處循序執行。隨後,該讀取資料在步驟248處由預載器實 例154處理以建立用於該指令之參考資料之對照影像。此影像隨後在步驟250處與原始指令組合以形成一複合強化指令。預載器操作240以每一預載器實例154之複合強化指令在步驟252處輸出至單個強化指令佇列184來結束。
定位引擎154實施本具體例之革新架構中之一個關鍵元件,即定位引擎154之主邏輯處理器184不是並行執行指令。因為主邏輯處理器184作為單個實例執行,所以其必須獨自達到總體處理量。此於是提昇主邏輯處理器184之時間關鍵操作之重要性。已應用以達成最高可能處理量之必要約束之一為要求禁止資料庫存取,因為其導致低處理量。在主邏輯處理器184可擷取頻繁使用之靜態參考資料的初始載入之後,向處理器184及自處理器184之外部資料存取限制輸入一個指令且輸出一個處理結果。然而,為處理一指令而需要但並非在起動階段過程當中載入的參考資料係藉由作為每一強化指令之一部分而提供之參考資料的對照影像而為可用的。用於自預載器152之一接收之給予資源帳戶檔案30的僅參考資料之第一影像將由定位引擎154儲存於其在上載主記錄記憶體表186之對應檔案30a中。此第一複本一直有效,因為其尚未由實時指令流修改。
當已在上載主記錄記憶體表186之對應檔案30a中時,由預載器152之一者所擷取之參考資料之影像係簡單忽略,因為其可能過期(由定位引擎154所確認之更新尚未反映於主資料庫 中)。因此,當關於一資源帳戶之數值的參考資料可用於上載主記錄記憶體表186之對應檔案30a中時,此總是使用優先於隨一強化指令提供之參考資料影像。
現參看圖11,更詳細展示定位引擎154之組成。定位引擎154包含一用於自強化指令佇列166擷取強化指令的指令接收模組260及一用於對目前強化指令印時戳的印時戳模組262。定位引擎154之單個實例邏輯處理器184包括參考資料擷取與更新模組264、變動計算器與局部記憶體儲存更新器266及指令處理邏輯268。
參考資料擷取與更新模組264用以擷取儲存於上載主記錄記憶體表186之對應檔案30a中之資料,確定該資料是否應更新,且若其應更新則更新該資料。上載主記錄記憶體表186在高速局部記憶體資料儲存裝置270中提供於單個實例邏輯處理器184,其導致針對定位引擎154之快速資料讀取及寫入時間。因此一指令之執行之判斷可僅以快速局部記憶體資料檢查而非耗時之外部資料庫檢查來實施。資料儲存裝置270亦保持失敗指令之再循環清單272,該等失敗指令將在一稍後時間再次嘗試以用於結算。
變動計算器與局部記憶體儲存更新器266用以讀取上載主記錄記憶體表186之對應檔案30a內所儲存之參考資料,使用指令資訊來判斷該資料應如何改變(變動)且將更新參考資料回寫至上載主記錄記憶體表186。
指令處理邏輯268係提供以評估資源帳戶檔案30之更新值及總計資源值32是否導致該資源資料在可接受位置。即,資源帳戶檔案30之數值及總計資源值32係評估用以遵守規則72。
再循環模組274係提供以用於讀取及寫入失敗指令至再循環清單272,再循環清單272又可由指令處理邏輯268讀取或自指令處理邏輯268寫入。單個指令邏輯處理器184之輸出係至報告模組276,其將指令處理之結果作為至終結佇列168之更新執行指令。
再循環係基於進入指令之優先權。一優先權分組(例如最高優先權、常規優先權、低優先權)先前已被指派於每一指令。再循環模組274在優先權次序中維持再循環清單,使其準備就緒用於將發生之再循環事件。該次序主要在指派於每一指令之優先權分組來判斷。隨後,指令之大小用於優先化。藉由在再循環清單內維持優先權,使得再循環之實施相對簡單且因此在執行時間過程當中快速。此外,使得再循環程序為動態的,因為其可改變再執行所接收處理指令之次序,以反映每一處理指令之優先權。
再循環模組274亦具有儲備一資源帳戶檔案30之內容以用於一特定指令之處理的能力。此發生於資源帳戶檔案中之可用資源之金額滿足一儲存之處理指令272之需求時。藉由儲備此金額,再循環模組274確保優先權得以維持且較大的高優先權 指令係在較小的低優先權指令之前執行,即使有資金可用於執行低優先權指令而非較大的高優先權指令亦如此。
此在以下定位引擎154中之再循環模組274如何實施所接收處理指令之儲備及優先權處置之非限制性實施例中最佳說明。
實施例:
資源帳戶檔案Acc/Sec1含有50份證券。
循序接收處理指令,其在Acc/Sec1上具有以下影響:
步驟1 最高優先權指令1需200
步驟2 常規指令2需100
步驟3 常規指令3需150
步驟4 常規指令3帶來60
步驟5 常規指令4帶來290
記憶體結構(Acc/Sec1中之餘額及再循環清單之內容)表示Acc/Sec1之再循環清單如下:
步驟1之後
Acc/Sec1
-含有50
-已儲備
-指令1用於50
-失敗清單<指令1>
步驟2之後
Acc/Sec1
-含有50
-已儲備
-指令1用於50
-失敗清單<指令1,指令2>(指令2具有低於指令1之優先權)
步驟3之後
Acc/Sec1
-含有50
-已儲備
-指令1用於50
-失敗清單<指令1,指令3,指令2>(指令3之優先權與指令2相同,但指令3較大,因此較重要)
步驟4之後:Acc/Sec1之餘額之增加已再循環失敗指令,從而允許指令1加入新的60個證券至其儲備。該儲備防止指令2(僅需100)使用該資源帳戶中之110份證券。
Acc/Sec1
-含有110
-已儲備
-指令1用於110
-失敗清單<指令1,指令3,指令2>
步驟5之後:Acc/Sec1之餘額之增加開始再循環過程。
在再循環開始時記憶體似乎為: Acc/Sec1
-含有400
-已儲備
-指令1用於110
-失敗清單<指令1,指令3,指令2>
指令1(在再循環清單中為第一者)之再循環(及結算)之後
Acc/Sec1
-含有200
-已儲備
-0
-失敗清單<指令3,指令2>
指令2(再循環清單中新的第一者)之再循環(及結算)之後
Acc/Sec1
-含有50
-已儲備
-0
-失敗清單<指令2>
指令2之再循環將失敗(缺少50)。若其不儲備,則記憶體保持不變。
現參看圖12詳細描述定位引擎154之操作280。操作280以在步驟282處自強化指令佇列166讀取一強化指令來開始。讀取之指令隨後在步驟284處由印時戳模組262來印時戳。給 予每秒處理之指令數量,印時戳具有高解析度且典型記錄時間以精確至微秒。
如步驟286處判斷,若印時戳之強化指令包括新參考資料,即未儲存於上載主記錄記憶體表186之對應檔案30a內之特定資源帳戶檔案30的數值,則將未知參考資料儲存於上載主記錄記憶體表186中。若參考資料並非新的,則操作280僅移動在步驟290處之局部餘額更新,其實施於變動計算器與局部記憶體儲存更新器266上。在此步驟中,參考資料係自局部記憶體資料儲存裝置270中之上載主記錄記憶體表186讀取,指令中所指定之變動應用於該讀取參考資料,且該參考資料之所得值寫回至上載主記錄記憶體表186之對應檔案30a。
隨後,指令處理邏輯268接著在步驟292處考慮參考資料之目前值並判斷資源帳戶檔案30之該所得更新值及總計資源值32是否遵守關於參考資料之可接受值的預定規則72。若其不遵守,則採取三個動作。
首先,在步驟294處經由報告模組276報告失敗原因。其次,參考資料之先前值在步驟296處復原。最終,失敗指令在步驟298處儲存於再循環清單272中以用於稍後之結算嘗試。
在更新參考資料不遵守預定規則72之情況下,結算指令之成功執行在步驟300處由報告模組276報告。此報告用以為指令相關之各方產生答覆訊息,且指示更新器158更新主資料庫24。該動作之影響隨後在步驟302處被抵消,即產生可應用於 主帳戶資料之資源帳戶變動資料且建立一組餘額更新訊息。在下文陳述之實施例中,以兩個步驟描述報告訊息及餘額更新訊息之產生。
最終,再循環動作在步驟304處執行,以查看經修正參考資料現在是否允許任何先前失敗指令來執行。
當然,報告為經更新之所有參考資料保持於定位引擎154中之局部記憶體(上載主記錄記憶體表186)中,以便在處理包括再循環指令之後續結算指令(取代由預載器之一者所提出之相同資料之過期型式)時再使用。
定位引擎154之局部記憶體270之檔案30a中所保持的更新參考資料30、32從未僅被清除。在一處理週期(例如一日)結束時,停止定位引擎154,導致記憶體之完全重設。若在定位執行過程當中發生一重大問題,則此重設亦發生。一特定重新啟動過程已實施,以保證在重新啟動複數個預載器152之前(在此時,主資料庫24反映所有餘額之最終型式)所有最終更新係反映於主資料庫24且一清除已對強化指令佇列166中之所有待決指令的實施。
複數個預載器152與定位引擎154如何一起工作之非限制性實施例現提供於下文。
實施例:
指令1(Ins 1)由預載器實例1(主資料收集器1)處理。其為(A方之)acc1與(B方之)acc2之間的用於資源帳戶類型sec1 之結算指令,其交換Sec1之10份證券與Sec2之500個單元。
指令2(Ins 2)由預載器實例2(主資料收集器2)處理。其為(C方之)acc3與(B方之)acc2之間的用於sec1之結算指令,其交換Sec1之20份證券與Sec2之1050個單元。
該兩個指令係並行執行。
由實例1所產生之訊息如下:(指令之影像)+(相關餘額之影像:acc1/sec1=1000,acc2/sec1=300,acc1/sec2=25000,acc2/sec2=30000...)
由實例2所產生之訊息如下:(指令之影像)+(相關餘額之影像:acc3/sec1=3000,acc2/sec1=300,acc3/sec2=5000,acc2/sec2=30000...)。
該兩個訊息循序寫入至定位引擎之增強指令佇列166。
顯然acc2/Sec1及acc2/Sec2以相同值給之兩次。定位引擎154之責任為在第一次接收到此等數值(精確值)時考慮此等數值,且在隨後接收到時丟棄該等數值(改為再使用記憶體複本)。
定位結果將如下:首先處理來自實例1之指令(次序不重要)
結算之前局部記憶體186中之餘額
<空>
結算之後記憶體中之餘額:<acc1/sec1>=990(1000-10)
<acc2/sec1>=310(300+10)
<acc1/sec2>=25500(25000+500)
<acc2/sec2>=29500(30000-500)
處理來自實例2之指令。
結算之前記憶體中之餘額(=前一指令之結算之後的餘額)
<acc1/sec1>=990(1000-10)
<acc2/sec1>=310(300+10)
<acc1/sec2>=25500(25000+500)
<acc2/sec2>=29500(30000-500)
結算之後記憶體中之餘額
<acc1/sec1>=990(不變)
<acc2/sec1>=330(310+20:由預載器所給予之數值300被丟棄)
<acc1/sec2>=25500(不變)
<acc2/sec2>=28450(29500-1050:由預載器所給予之數值被丟棄)
<acc3/sec1>=2980(3000-20)
<acc3/sec2>=6050(5000+1050)
終結佇列168為本具體例之一重要部分。其代表將定位引擎154關於一給予指令相對於規則之可接受性的決定與指令結果之實際實時報告及主資料庫24之更新解除耦合的方式。此解除耦合使得定位引擎154能夠最小化其處理任務且因此具有 大於原本情況之處理量。
定位引擎154之終結(戳記表明無論何事發生,結算指令係確認)並非藉由反映定位引擎在主資料庫24中之更新而達成,而是藉由將其登錄在終結佇列168中之一更新執行指令中而達成。換言之,終結指令記錄(更新執行指令)寫入至終結佇列168,其為調度器156之輸入佇列。在該時刻,原始處理指令被視為最終的,即已被執行。調度器156之責任為向指令之各方產生通知,且將更新分散於更新器158之不同輸入佇列(主資料隔離佇列170)上。主要目的為避免在相同邏輯工作單元中混合報告活動與資料庫餘額更新。
因為由定位引擎154所產生之輸出限於一個持久訊息(含有待實施以完成下伏指令的所有主資料庫更新),所以一用以分散更新且產生在指令執行中之所請求報告(例如對一實時個別指令處置程序162之答覆)的專用過程由調度器156提供。對於在輸入中所接收之一個訊息,調度器156將寫入輸出(每更新資源一個且每產生報告一個)。為了處置總體處理量要求,此調度邏輯係並行執行。調度器156係可擴充的(處理量藉由執行程式之再一複本而增加)。
調度器156所產生之報告訊息之格式僅為結構化本文訊息。然而,此格式可改變以在需要時使用一外部或ISO格式。調度器亦經組態以產生處理時段報告,其列出在該時段過程當中所發生之所有交易,且亦列出其對每一所涉及實體之資源帳 戶檔案30之數值及總計資源值32所造成之結果。
調度器156並不判斷需要指示哪一主資料更新器190實施更新。而是如下文所述將其留給路由架構175及工作流程平衡器176。
路由架構175係提供以幫助工作流程平衡。對初始輸入佇列164之輸入及調度器程式188朝向更新器158於主隔離佇列170之輸出係經由路由架構175及工作負荷平衡器178發送。調度器程式188將指令發送至路由架構175而無需知道該指令之確切目的地(主隔離佇列170)。路由架構175之用途為準備指令以用於特定路由至平台上同時操作之複數個可能佇列中之一者。在此具體例中,路由架構準備指令以用於適當地路由至複數個初始輸入佇列164中之一者或主資料隔離佇列170中之一者。路由架構175加入兩個技術欄位:一訊息名稱及一工作負荷平衡密鑰。訊息名稱描述訊息中所含有之資訊的類型,且工作負荷平衡密鑰設定為指令ID,以保證兩個後續執行嘗試將以相同報告序列來報告,以避免由於例如定序問題而報告「指令結算」及隨後之「指令失敗」。此係藉由一內部查找表實施。
路由架構175亦具有向指令流加入一新程序以改變程序之間一指令之路由的能力。其亦可向一指令流加入一新指令,抑制自一程序發送指令,及在需要時複製一指令。如下文所述,具有訊息名稱及工作負荷平衡密鑰之指令隨後由工作流程平 衡器176處置。
在平台150之操作中,路由架構175之責任為決定一處理指令是否將發送,發送給誰,格式如何,以及關於哪一實例(用於並行處理)。路由架構175用於確保在一個指令中之報告係定序於同一指令之前一報告之後。舉例而言,在一指令在最終被接受之前已失敗若干次之情況下,對該處理指令已成功執行之報告必須跟隨於用於相同指令156之失敗結算報告訊息之後。而且每一失敗指令之報告係循序發送以允許指示方對指令失敗做出正確反應。
實施例一第一指令處理嘗試提供一失敗,原因=>A方之資源帳戶之等級不足以支援該指令(A方可採取某個動作)。隨後一第二指令處理嘗試亦失敗,原因=>B方之資源帳戶之等級不足以支援該指令(B方可採取某個動作)。在對此報告時,重要的係A方之資源帳戶失敗訊息之後為B方之資源帳戶失敗訊息。當並行執行調度器模組時,路由架構175之責任為發送關於調度器156之相同實例之一個指令的所有報告(指令識別符上之工作負荷平衡)。
工作負荷平衡器176基於指令名稱及平衡密鑰(未圖示)而判斷指令之最終目的地,該指令名稱及平衡密鑰共同由處理平台150考慮以唯一描述每一指令。訊息名稱用於識別目標主資料隔離佇列170,該目標主資料隔離佇列170依次饋送一特定主資料更新器190(參見稍後關於每一主資料更新器190係如 何針對一特定類型之更新)。平衡密鑰用於計算一特定實例(主資料隔離佇列170)。工作負荷平衡器176保證對於相同密鑰,其將總是選擇相同實例(主資料隔離佇列170),見下文之簡單實施例:
實施例:
訊息名稱=「證券_餘額_更新」=>證券餘額更新器
平衡密鑰=證券id=13
並行執行之證券更新器之總數量=3
選定實例=13-(取整數(13/3)* 3)+1=13-(4 * 3)+1=13-12+1=2
=>每當對證券id 13進行更新時,實例號2將被選擇(訊息路由)。
每一主資料隔離佇列170僅自調度器程式188接收已由路由架構175及工作負荷平衡器176特定路由至該佇列170的指令。每一主資料隔離佇列170相關於一特定主資料更新器190,該主資料更新器190依次僅在主資料庫24之一特定部分24a、24b、24c上操作。
更新器158專用於在主資料庫24之一個特定分區24a、24b、24c中反映由定位引擎156宣告為最終的更新指令。因為每一主資料更新器190在一唯一資料庫分區中獨立工作,所以其不受其他更新程序所產生之任何潛在鎖住的影響。而且, 因為每一更新器190唯一地更新其管理之參考資料的集合,所以其可執行更新指令之網路化(netting)。一更新器之每一實例在其自身密鑰範圍(用於識別對之路由(route)其指令的更新器)上工作,無論該等密鑰是否係隔離於主資料庫之一特定部分。
更新器158如何特定實施存在兩個不同具體例。在一個具體例中,更新指令(更新)係記載差量,即藉由對資源帳戶檔案之數值的改變。在另一具體例中,更新係藉由資源帳戶檔案之最後值而被記載。此兩個具體例在下文描述為其達成執行網路化之方式。
當更新係藉由差量而記載時,由主資料更新器190所實施之網路化演算法(未圖示)包含加總對一給予資源帳戶檔案30在執行一單個更新之前用於該資源帳戶檔案30之每一指令的變動。當更新係藉由最後值而記載時,網路化包含保持具有較高更新時戳之數值且在更新語句之「其中」(where)子句中加入時戳驗證(見下文實施例)。
更具體而言,在最後值模型中,網路化程序試圖保持由定位引擎154所實施之最後更新。由於更新序列不受保證,因此網路化演算法可在已接收到12:45:03之最後值之後接收諸如12:45:01之最後值。為實施更新,僅需考慮12:45:03之最後值。當然,若諸如12:45:06之最後值已反映於資料庫中,則12:45:03之值必須忽略。此可藉由在更新主資料時使用時戳 而進行,如下文說明:EXEC SQL UPDATE PP_SEC_BAL
SET BALANCE_VALUE=輸入中所接收之最後值,餘額時戳=最後值定位時戳
其中餘額ID=來自更新請求之餘額idAND
餘額時戳(DB中)<最後值定位時戳
由更新器所接收之更新訊息係為最終的(無論如何均應用)。此意味著其可分組在一起,使得用於相同密鑰之兩個後續更新指令由主資料更新器190轉譯為一單個實體更新。
最後值具體例及差量值具體例如何操作之實施例陳述於下文。
最後值之實施例。
更新器循序接收以下輸入:餘額1 10000 2007-08-01-09.01.01.112335(時間以微秒計)
餘額1 12500 2007-08-01-09.01.02.100475
餘額1 25000 2007-08-01-09.01.01.875221
餘額1 12500 2007-08-01-09.01.02.077054
主資料更新器190循序擷取所有更新。
對於第一者,其保持該數值(第一次在目前邏輯工作單元中參考餘額)。
對於第二者,其置換其記憶體中之先前值(請求與第一者相 比係未來的)。
對於第三者,其將其丟棄,因為該請求係在第二值之前產生。
對於第四者,其將其丟棄,因為該請求亦在第二值之前產生。
在提交時(提交頻率),一實體更新產生:EXEC SQL UPDATE SET餘額值=12500,時戳=2007-08-01-09.01.02.100475
其中餘額id=餘額1且時戳<2007-08-01-09.01.02.100475
若資料庫中之影像與所提出之一者相比已經是未來的,則時戳條件將中止更新請求。
差量之實施例。
主資料更新器190循序接收以下輸入:餘額1 10000 2007-08-01-09.01.01.112335(時間以微秒計)
餘額1 12500 2007-08-01-09.01.02.100475
餘額1 25000 2007-08-01-09.01.01.875221
餘額1 12500 2007-08-01-09.01.02.077054
主資料更新器190循序擷取所有更新。
對於第一者,其保持該數值(第一次在目前邏輯工作單元中參考餘額)。
對於第二者,其加入該差量10000+12500=22500
對於第三者,其加入該差量22500+25000=47500
對於第四者,其加入該差量47500+12500=60000
在提交時(提交頻率),一實體更新產生:EXEC SQL UPDATE SET餘額值=餘額值+60000
其中餘額id=餘額1
藉由定步速模組174確保佇列通常為空並非僅有在整個平台之指令流上所實施之控制。在實時處理過程當中,定界器架構178確保在處理時段結束之前所實施之所有更新係正確反映於主資料庫24中,以便起動調度器156中之處理時段報告活動的結束。
即使主資料庫更新尚未實施,將一更新執行指令寫入至終結佇列168亦可被視為平台150對指令之最終執行。然而,自技術觀點而言仍必須確保在依賴於主資料庫資源帳戶30之數值之前更新執行指令實際實施於主資料庫24中。
為達成此目的約束,定界器架構178提供一基本功能,其為將一請求/答覆訊息寫入至終結佇列頂部。當接收答覆時,其意味著先前寫入至終結佇列之所有指令皆已執行。
平台150中之指令處理流程包含循序執行之一組程序。特定而言,主資料隔離佇列170僅在更新執行指令已經過終結佇列168之後才處置更新執行指令。因此,一旦自終結佇列接收到答覆,則一新的請求/答覆訊息係發送至序列中之下一佇列,即主資料隔離佇列170。每一佇列以FIFO定序操作。
定界器架構178之功能並非檢查主資料庫內具有正確之更新資料,而是檢查所有更新執行指令皆已依次執行,其中此檢 查係循序經由系統之不同處理級而實施。
當並行性實施時,一程序可在多個佇列上並行執行。為了確認所有佇列皆已處理其積欠記錄,請求/答覆訊息不僅必須寫入其中一者而且必須寫入其所有者中。路由架構(routing framework)175之責任為偵測訊息應發送至一程序之n個實例,且定界器架構之責任在開始對下一程序定界之前等待直到接收到n個答覆為止。
以下實施例陳述定界器架構178如何操作以確保在處理時段關閉之後由更新器158對更新執行指令之執行。
實施例:
在一特定時間,例如下午4點,平台150為執行指令界定一截止期。一旦截止期到達,進行自主資料庫提取所有執行指令之一報告程序,以便建立一循序報告檔案以發送至處理時段活動所感興趣的一方。
下午4點排程器開始報告程序。
作為程序中之第一步驟,定界器公用程式(未圖示,但為定界器架構178之一部分)用於產生並發送一定界器訊息至定界器核心(未圖示,但亦為定界器架構178之一部分)。基於所接收之訊息,定界器核心開始將訊息寫入至待定界之不同程序,以確保由定位引擎154宣告為最終的所有更新係反映至主資料庫(調度器188及更新器190)。
作為報告程序之第二步驟,執行定界器完成檢查公用程式 (未圖示,但為定界器架構178之一部分)。其保持暫停報告程序,直至定界器程序由定界器核心宣告為完成為止。當此完成時,報告程序之執行在下一步驟重新開始。
作為報告程序中之第三步驟,調度器188中之報告事務邏輯係基於主資料中含有之精確資料而執行。
提取報告任務請求定界器架構178以確保在下午4點截止期之前所到達之更新執行指令由調度器156處理,以用於報告目的且其亦應用於主資料庫24。當此完成時,主資料庫24狀態反映在截止期之前所確認之所有活動,且提取報告可如上文所述精確地產生。
上文關於圖8至12之具體例所述之特徵已在所附申請專利範圍中陳述。應瞭解本發明之又一些具體例可藉由使用上文所述之特徵之一子集來產生。舉例而言,又一具體例可不使用上文所述之再循環特徵,而是可使用一已知替代方案。類似地,定步速模組可調適或移除以提供一不同解決方案。然而在一替代資料處理結構之選擇中,在處理量之影響需要考慮。在目前情況下考慮所主張之處理結構為一最佳結構,其提供最佳可能程度之處理量。諸如定步速模組之特徵簡單地增強處理量。
描述本發明之特定較佳具體例之後,應瞭解所討論之具體例僅為例示性的,且在不背離所附申請專利範圍中陳述之本發明精神及範疇的情況下可做出諸如熟習本技藝者將想到的變化及修改。
10‧‧‧中央資源管理系統
12‧‧‧通信通道
14‧‧‧A方之伺服器
16‧‧‧B方之伺服器
18‧‧‧記錄資料庫
20‧‧‧記錄資料庫
22‧‧‧指令執行伺服器
24‧‧‧主資源資料庫
24a‧‧‧主資料庫之部分
24b‧‧‧主資料庫之部分
24c‧‧‧主資料庫之部分
30‧‧‧資源帳戶檔案
30a‧‧‧檔案
32‧‧‧總計資源值
40‧‧‧指令資料訊息
42‧‧‧各方ID欄位
44‧‧‧執行日期欄位
46‧‧‧第一資源類型欄位
48‧‧‧第一資源量欄位
50‧‧‧第二資源類型欄位
52‧‧‧第二資源量欄位
60‧‧‧指令驗證器
62‧‧‧指令匹配器
64‧‧‧定時模組
66‧‧‧指令資料庫
68‧‧‧報告模組
70‧‧‧指令檢查、執行與更新引擎
72‧‧‧執行規則
130‧‧‧程序
132‧‧‧新指令檔案
134‧‧‧主檔案
136‧‧‧循序更新程式
138‧‧‧新主檔案
140‧‧‧個別指令處置電腦或程序
142‧‧‧個別指令處置電腦或程序
144‧‧‧序列檔案處置程序
146‧‧‧直接更新程式
148‧‧‧指令執行管理器
152‧‧‧預載器
154‧‧‧定位引擎
156‧‧‧調度器
158‧‧‧更新器
160‧‧‧序列檔案處置程序
162‧‧‧個別指令處置程序
164‧‧‧初始輸入佇列
166‧‧‧強化指令佇列
168‧‧‧終結佇列
170‧‧‧主資料隔離佇列
172‧‧‧答覆佇列
174‧‧‧定步速模組
175‧‧‧路由架構
176‧‧‧工作負荷平衡器
178‧‧‧定界器架構
182‧‧‧主資料收集器
184‧‧‧單個實例邏輯處理器
186‧‧‧上載更新主記錄記憶體表
188‧‧‧調度器程式模組
190‧‧‧主資料更新器
260‧‧‧指令接收模組
262‧‧‧印時戳模組
264‧‧‧參考資料擷取與更新模組
266‧‧‧變動計算器與局部記憶體儲存更新器
268‧‧‧指令處理邏輯
270‧‧‧高速局部記憶體資料儲存裝置
272‧‧‧再循環清單
274‧‧‧再循環模組
276‧‧‧報告模組
圖1為展示用以執行A方與B方之間的協議之基本先前技術指令處理之結構的示意圖;圖2為展示儲存於主資料庫中之資源帳戶檔案的示意方塊圖;圖3為展示來自一方之資料訊息指令之組成的示意方塊圖;圖4為展示圖1之指令執行伺服器之主要組件的示意圖方塊圖;圖5為展示先前技術指令處理平台之操作之一般方法的流程圖;圖6為展示用於批次輸入之標準先前技術匹配程序的示意說明圖;圖7為展示用於並行多個程序輸入之標準先前技術匹配程序的示意說明圖;圖8為展示根據本發明之具體例之處理平台的示意方塊圖;圖9為展示圖8之處理平台之操作的流程圖;圖10為展示圖8之處理平台之預載器模組之操作的流程圖;圖11為展示圖8之處理平台之定位引擎的示意方塊圖;及圖12為展示圖11之定位引擎之操作的流程圖。
24‧‧‧主資源資料庫
24a‧‧‧主資料庫之部分
24b‧‧‧主資料庫之部分
24c‧‧‧主資料庫之部分
152‧‧‧預載器
154‧‧‧定位引擎
156‧‧‧調度器
158‧‧‧更新器
160‧‧‧序列檔案處置程序
162‧‧‧個別指令處置程序
164‧‧‧初始輸入佇列
166‧‧‧強化指令佇列
168‧‧‧終結佇列
170‧‧‧主資料隔離佇列
172‧‧‧答覆佇列
174‧‧‧定步速模組
175‧‧‧路由架構
176‧‧‧工作負荷平衡器
178‧‧‧定界器架構
182‧‧‧主資料收集器
184‧‧‧單個實例邏輯處理器
186‧‧‧更新主記錄記憶體表
188‧‧‧調度器程式模組
190‧‧‧主資料更新器

Claims (33)

  1. 一種用於在一處理時段過程當中實時處理及處置極大數量處理指令的系統,每一處理指令指定相關於兩個不同實體之資源帳戶資料檔案以及將在該等檔案之間所交換之資源的量及類型,該系統包含:複數個預載器,每一預載器係配置成獲得相關於該等指令之參考資料,該參考資料指示該等指定資源帳戶資料檔案中每一者之目前值,且該複數個預載器係配置成並行操作以自一主資料庫讀取該參考資料,以用於複數個個別接收指令;一強化指令佇列,用於將複數個該處理指令連同其個別預載參考資料一起排隊;一執行引擎,配置成使用該接收參考資料來循序判斷每一所接收指令是否可在該等相關資源帳戶檔案之目前值下且針對每一可執行指令來執行以產生一更新命令;以及複數個更新器,回應於來自該執行引擎之該更新命令,以用於以每一可執行指令之結果更新該主資料庫,該複數個更新器之操作與該執行引擎之操作係解除耦合。
  2. 如申請專利範圍第1項之系統,更包含一初始輸入佇列,該初始輸入佇列配置成自複數個不同資源接收實時指令及批次指令,且將該等指令排隊以用於輸入至該等預載器。
  3. 如申請專利範圍第2項之系統,其中,該初始輸入佇列包含複數個初始輸入佇列,該複數個初始輸入佇列中每一者係配 置成將一專用輸入提供至該複數個預載器中之一對應者。
  4. 如申請專利範圍第2項之系統,其中,該初始輸入佇列係配置成向每一進入指令指派一優先權。
  5. 如申請專利範圍第1項之系統,其更包含一目前條件表,該目前條件表儲存於該執行引擎處且經配置成用該等執行指令在該等資源帳戶檔案上所造成之結果進行更新,從而獲得該等更新資源帳戶檔案中每一者之一更新實時值之表示,其中該執行引擎係配置成針對後續之循序指令處理,以優先於來自該預載器之參考資訊而使用該目前條件表中之資訊,以用於一特定資源帳戶資料檔案。
  6. 如申請專利範圍第1項之系統,其中,每一預載器包含一主資料收集器,每一主資料收集器係配置成自該主資料庫讀取該指令中所識別之該等資源帳戶檔案之數值及總計資源值,且編譯並輸出一包含自該主資料庫所讀取之該資料的強化處理指令。
  7. 如申請專利範圍第5項之系統,其中,該執行引擎包含一用於儲存該目前條件表之高速局部資料記憶體。
  8. 如申請專利範圍第1項之系統,其中,該執行引擎係配置成藉由參考儲存之一組預定規則而判斷該目前指令是否可在該等相關資源帳戶檔案之目前值下來執行。
  9. 如申請專利範圍第6項之系統,其中,該執行引擎包含一印時戳模組,該印時戳模組配置成判斷該等處理指令中之一者 之接收時間,且建立一時戳並將該時戳應用於該處理指令。
  10. 如申請專利範圍第1項之系統,其中,該執行引擎包含一再循環模組,該再循環模組用於將失敗處理指令之一清單儲存於一高速局部記憶體中且用於實施一再循環程序,其中由該失敗處理指令所識別之該等資源帳戶檔案在一更新之後,該等失敗處理指令係呈現用於再執行。
  11. 如申請專利範圍第10項之系統,其中,該再循環模組係配置成按該等失敗指令之優先權之次序儲存該等失敗指令,且首先呈現最高優先權指令以用於在該再循環程序過程當中再執行。
  12. 如申請專利範圍第10項之系統,其中,該再循環模組係配置成儲備一資源帳戶檔案之目前值以用於該清單中之一指令,且將此儲備金額用於在一再循環程序過程當中滿足該指令之要求。
  13. 如申請專利範圍第10項之系統,其中,該再循環模組係配置成呈現失敗處理指令用於再執行一預定最大次數,且若該處理指令仍未執行,則該再循環模組係配置成取消該失敗指令。
  14. 如申請專利範圍第1項之系統,其中,該執行引擎包含一用於報告該等所接收指令中一者之執行之結果的報告模組,該報告模組係配置成輸出其已判斷為可執行之每一指令之該更新命令及其已判斷無法執行之每一指令之一通知指令。
  15. 如申請專利範圍第14項之系統,其中,該報告模組係配置成臨時儲存複數個更新命令直到一提交事件發生為止,且在該提交事件發生時輸出該複數個儲存之更新命令,其中該提交事件表示由該執行引擎對一個實體工作單元之完成。
  16. 如申請專利範圍第14項之系統,更包含一終結佇列,該終結佇列配置成自該報告模組接收該更新命令及該通知指令,且將該更新命令及該通知指令排隊。
  17. 如申請專利範圍第1項之系統,其中,每一更新器包含並行操作之複數個更新實例,每一實例在該主資料庫之一唯一部分上操作。
  18. 如申請專利範圍第17項之系統,更包含一用於每一更新實例之隔離輸入佇列,每一隔離佇列係配置成接收關於該主資料庫之由該對應更新實例所更新之特定部分的複數個更新命令。
  19. 如申請專利範圍第18項之系統,其中,每一隔離輸入佇列係配置成達成更新命令之網路化(netting),而該等更新命令相關於相同參考帳戶檔案。
  20. 如申請專利範圍第18項之系統,更包含一調度器模組,該調度器模組配置成判斷每一更新命令向一特定隔離佇列之路由(routing),且為不同實體建立描述一執行指令之失敗或成功的報告訊息。
  21. 如申請專利範圍第3項之系統,更包含一路由架構,該 路由架構係配置成將一指令分布至同時操作之複數個初始輸入佇列。
  22. 如申請專利範圍第21項之系統,其中,該路由架構係配置成向一指令指派一描述該指令相關之資訊之類型的指令名稱及一提供識別該指令之唯一密鑰的工作負荷平衡器密鑰。
  23. 如申請專利範圍第21項之系統,其中該路由架構包含一工作負荷平衡器,該工作負荷平衡器與該路由架構組合配置成藉由該接收之指令名稱及工作負荷平衡器密鑰之使用而選擇該等初始輸入佇列中之一者。
  24. 如申請專利範圍第23項之系統,其中,該工作負荷平衡器係配置成將一給定工作負荷平衡器密鑰鏈結至相同特定目的地,以確保關於一特定資源帳戶資料檔案之所有指令係總是被路由至該複數個佇列中之相同一者。
  25. 如申請專利範圍第1項之系統,更包含一定界器架構,該定界器架構係配置成回應於在一給定時間該處理時段之關閉,而將一訊息發送至在該執行引擎之輸出處所提供的一佇列之輸入並等待其回應,且將另一訊息發送至該複數個更新器中一者之一輸入佇列並等待其回應,該等循序回應之接收指示以在該處理時段的關閉之前所執行之所有該等處理指令之結果對該主資料庫之更新。
  26. 如申請專利範圍第25項之系統,其中,該定界器架構係亦配置成將一訊息發送至該調度器模組之一輸入佇列,且等待 相應反饋以確認用於在該處理時段的關閉之前所執行之該等處理指令的報告訊息已全部發送。
  27. 如申請專利範圍第1項之系統,更包含一定步速模組,該定步速模組用於判斷該執行引擎之處理指令處理量且將等待狀態應用於任何佇列,以將處理指令之載入速度減慢至小於該執行引擎之該處理量。
  28. 一種用於在一處理時段過程當中實時處理及處置極大數量處理指令訊息的系統,每一處理指令指定相關於兩個不同實體之資料檔案以及將在該等檔案之間所交換之資源的量及類型,該系統包含:複數個預載器,每一預載器係配置成獲得相關於該等指令之參考資料,該複數個預載器係配置成並行操作,以自一主資料庫讀取該參考資料;一指令訊息佇列,用於將複數個該等處理指令訊息連同其個別獲得之參考資料一起排隊;一執行引擎,用於循序執行每一指令訊息,該執行引擎使用該預載之參考資訊,以判斷該指令訊息是否可在該等相關檔案之目前條件下而非使用任何主資料庫存取而執行;以及一目前條件表,配置成用該等執行指令在該等檔案上之結果進行更新,以建立該等相關檔案之一更新實時位置;其中該執行引擎係配置成針對後續之循序指令處理,以優先於來自該複數個預載器之參考資訊而使用該目前條件表中之 資訊,以用於一特定資料檔案,前提為該資料檔案在該處理時段過程當中已由該執行引擎更新。
  29. 一種用於在一處理時段過程當中實時處理及處置極大數量處理指令訊息的系統,在該處理時段中指令係以不同速率非同步接收,該系統包含:複數個處理模組,用於在該等指令訊息上實施不同類型之處理,其中該等處理模組中之一者包含一配置成循序處理該等指令訊息之執行引擎;複數組指令佇列,其每一組係提供以將對一個別資料處理模組之輸入排隊;一定步速模組,用於判斷該執行引擎之處理指令處理量且將等待狀態應用於任何指令佇列,以將處理指令之載入速度減慢至小於該執行引擎之該處理量。
  30. 一種用於在一處理時段過程當中實時處理及處置極大數量處理指令訊息的系統,每一處理指令指定相關於兩個不同實體之資料檔案以及將在該等檔案之間所交換之資源的量及類型,該系統包含:複數個預載器,每一預載器係配置成獲得相關於該等指令之參考資料,該複數個預載器係配置成並行操作,以自一主資料庫讀取該參考資料且將該參考資料連同該指令訊息一起輸出至一執行引擎;該執行引擎,係配置成循序執行每一指令訊息,該執行引擎 使用該預載之參考資訊,以判斷該指令訊息是否可在該等相關資源帳戶檔案之目前條件下而非使用任何主資料庫存取而執行;以及一高速局部記憶體,用於儲存一目前條件表,該目前條件表係配置成用該等執行指令在該等檔案上之結果進行更新,以建立該等相關檔案之一更新實時位置;一再循環模組,用於將失敗處理指令之一清單儲存於該高速局部記憶體中且用於實施一再循環程序,其中由該失敗處理指令所識別之該表中在該等資源帳戶檔案之一更新之後,該等失敗處理指令係呈現以用於再執行。
  31. 如申請專利範圍第30項之系統,其中,該再循環模組係配置成按該等失敗指令之優先權之次序儲存該等失敗指令,且首先呈現最高優先權指令以用於在該再循環程序過程當中再執行。
  32. 如申請專利範圍第30項之系統,其中,該再循環模組係配置成儲備一資源帳戶檔案之目前值以用於該清單中之一指令,且將此儲備金額用於在一再循環程序過程當中滿足該指令之要求。
  33. 如申請專利範圍第30至32項中任一項之系統,其中,該再循環模組係配置成呈現失敗處理指令用於再執行一預定最大次數,且若該處理指令仍未執行,則該再循環模組係配置成取消該失敗指令。
TW098106478A 2008-02-29 2009-02-27 關於實時中大數量處理指令之處置及處理的改善 TWI503745B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP08250696.5A EP2096564B1 (en) 2008-02-29 2008-02-29 Improvements relating to handling and processing of massive numbers of processing instructions in real time

Publications (2)

Publication Number Publication Date
TW200943182A TW200943182A (en) 2009-10-16
TWI503745B true TWI503745B (zh) 2015-10-11

Family

ID=39563482

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098106478A TWI503745B (zh) 2008-02-29 2009-02-27 關於實時中大數量處理指令之處置及處理的改善

Country Status (12)

Country Link
US (3) US8612299B2 (zh)
EP (1) EP2096564B1 (zh)
JP (1) JP5603780B2 (zh)
KR (1) KR101616967B1 (zh)
CN (1) CN102016842B (zh)
AU (1) AU2009219899B2 (zh)
BR (1) BRPI0906031A2 (zh)
CA (1) CA2716640C (zh)
MY (1) MY155436A (zh)
RU (1) RU2465634C2 (zh)
TW (1) TWI503745B (zh)
WO (1) WO2009106901A1 (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101775554B1 (ko) * 2010-02-18 2017-09-07 삼성전자주식회사 동적 기계어 코드 생성시 명령어 및 데이터의 배치 방법 및 장치
KR101447845B1 (ko) * 2011-02-28 2014-10-13 미쓰비시덴키 가부시키가이샤 통신 장치
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
CN103577251A (zh) * 2012-07-20 2014-02-12 中兴通讯股份有限公司 基于事件的互联网计算处理***及方法
US9207964B1 (en) 2012-11-15 2015-12-08 Google Inc. Distributed batch matching of videos with dynamic resource allocation based on global score and prioritized scheduling score in a heterogeneous computing environment
US11321775B2 (en) 2013-06-27 2022-05-03 Euroclear Sa/Nv Asset inventory system
JP2016528599A (ja) * 2013-06-27 2016-09-15 ユーロクリア エスエー エヌヴィーEuroclear Sa/Nv 改良されたインベントリソーシングシステム
CN104375993B (zh) * 2013-08-12 2018-02-02 阿里巴巴集团控股有限公司 一种数据处理的方法及装置
KR20150033454A (ko) 2013-09-24 2015-04-01 주식회사 엘지씨엔에스 빅데이터 처리 장치 관리 방법 및 이를 수행하는 관리 시스템
CN105718474B (zh) * 2014-12-03 2019-10-18 阿里巴巴集团控股有限公司 用于对MySQL数据库的并发操作进行控制的方法及装置
CN104915886B (zh) * 2015-01-04 2018-06-26 杭州时代银通软件股份有限公司 一种外汇牌价处理***及方法
CN105828309B (zh) * 2015-01-05 2019-07-02 ***通信集团广西有限公司 一种话单处理方法、设备及***
CN107533518B (zh) 2015-01-20 2020-09-18 乌尔特拉塔有限责任公司 用于容错对象存储器结构的分布式索引
WO2016118624A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Object memory instruction set
JP6405255B2 (ja) * 2015-02-05 2018-10-17 株式会社日立製作所 通信システム、キュー管理サーバ、及び、通信方法
CN104657462B (zh) * 2015-02-10 2017-12-22 北京宇航***工程研究所 一种海量测量数据准实时入库方法
RU2609089C2 (ru) * 2015-02-24 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Система и способ выполнения очереди запросов в отношении цифровых объектов
CN104954450B (zh) * 2015-05-29 2018-07-24 北京奇虎科技有限公司 一种文件处理方法和装置
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
CN108885604B (zh) 2015-12-08 2022-04-12 乌尔特拉塔有限责任公司 存储器结构软件实现方案
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
US10235063B2 (en) 2015-12-08 2019-03-19 Ultrata, Llc Memory fabric operations and coherency using fault tolerant objects
CA3006776A1 (en) 2015-12-08 2017-06-15 Ultrata, Llc. Memory fabric operations and coherency using fault tolerant objects
CN105763595A (zh) * 2015-12-23 2016-07-13 杭州赫智电子科技有限公司 一种提高数据处理效率的方法及服务器
US10387415B2 (en) * 2016-06-28 2019-08-20 International Business Machines Corporation Data arrangement management in a distributed data cluster environment of a shared pool of configurable computing resources
CN106201992A (zh) * 2016-07-14 2016-12-07 贵阳朗玛信息技术股份有限公司 一种大数据实时运算方法及装置
US10438275B2 (en) * 2016-09-28 2019-10-08 Paypal, Inc. Method, medium, and system for managing de-queueing operations of transaction queues
US10510108B2 (en) 2016-09-28 2019-12-17 Paypal, Inc. Method, medium, and system for managing queueing and de-queueing operations of transaction queues
US10885502B2 (en) 2016-09-28 2021-01-05 Paypal, Inc. Using disbursement signals at payment systems
US11093887B2 (en) 2016-09-28 2021-08-17 Paypal, Inc. Managing disbursement signals at payment systems
CN110100235B (zh) * 2016-12-15 2023-01-06 起元技术有限责任公司 异类事件队列
US10642801B2 (en) 2017-08-29 2020-05-05 Bank Of America Corporation System for determining the impact to databases, tables and views by batch processing
US10503438B1 (en) * 2018-08-24 2019-12-10 Micron Technology, Inc. Memory sub-system supporting non-deterministic commands
US11144346B2 (en) 2019-05-15 2021-10-12 Capital One Services, Llc Systems and methods for batch job execution in clustered environments using execution timestamp granularity to execute or refrain from executing subsequent jobs
CN111404930A (zh) * 2020-03-13 2020-07-10 北京思特奇信息技术股份有限公司 一种复合指令处理方法和***
CN112687098B (zh) * 2020-12-18 2021-12-14 北京龙骧数据科技有限公司 电子路障的数据处理方法、装置、设备及存储介质
CN113985826B (zh) * 2021-10-25 2022-12-27 西安热工研究院有限公司 面向多运算周期的实时值加载方法和***、设备及存储介质
US20230185954A1 (en) * 2021-12-15 2023-06-15 Bank Of America Corporation Transmission of Sensitive Data in a Communication Network

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347632A (en) * 1988-07-15 1994-09-13 Prodigy Services Company Reception system for an interactive computer network and method of operation
US5956741A (en) * 1994-03-24 1999-09-21 Discovision Associates Interface for connecting a bus to a random access memory using a swing buffer and a buffer manager
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US20050149428A1 (en) * 2003-12-12 2005-07-07 Michael Gooch Apparatus, method and system for providing an electronic marketplace for trading credit default swaps and other financial instruments, including a trade management service system
TW200711435A (en) * 2005-08-26 2007-03-16 Viaccess Sa A method of establishing a session key and units for implementing the method
US7216348B1 (en) * 1999-01-05 2007-05-08 Net2Phone, Inc. Method and apparatus for dynamically balancing call flow workloads in a telecommunications system
TW200809529A (en) * 2006-02-16 2008-02-16 Technology Properties Ltd Computer system with increased operating efficiency

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0342741A (ja) * 1989-07-11 1991-02-22 Nippon Denki Joho Service Kk ホスト間通信での分散データベース更新方式
JPH07104811B2 (ja) * 1989-11-29 1995-11-13 株式会社日立製作所 高速データベース制御方式
JP2853608B2 (ja) * 1995-05-30 1999-02-03 日本電気株式会社 並列処理システムのファイルアクセス制御方式
US7117165B1 (en) * 1997-04-28 2006-10-03 Ariba, Inc. Operating resource management system
US7630986B1 (en) * 1999-10-27 2009-12-08 Pinpoint, Incorporated Secure data interchange
US6714978B1 (en) * 1999-12-04 2004-03-30 Worldcom, Inc. Method and system for processing records in a communications network
CN1209719C (zh) * 2000-11-13 2005-07-06 国际商业机器公司 用于将服务器上的业务提供给用户设备的方法和***
WO2003090200A1 (en) * 2002-04-19 2003-10-30 Radixs Pte Ltd System and method for use of multiple applications
JP2006338197A (ja) * 2005-05-31 2006-12-14 Fujitsu Ltd トランザクション制御プログラム、トランザクション制御方法及びトランザクション処理システム
US7983971B1 (en) * 2006-01-26 2011-07-19 Fannie Mae Accounting system and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347632A (en) * 1988-07-15 1994-09-13 Prodigy Services Company Reception system for an interactive computer network and method of operation
US5956741A (en) * 1994-03-24 1999-09-21 Discovision Associates Interface for connecting a bus to a random access memory using a swing buffer and a buffer manager
US7216348B1 (en) * 1999-01-05 2007-05-08 Net2Phone, Inc. Method and apparatus for dynamically balancing call flow workloads in a telecommunications system
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US20050149428A1 (en) * 2003-12-12 2005-07-07 Michael Gooch Apparatus, method and system for providing an electronic marketplace for trading credit default swaps and other financial instruments, including a trade management service system
TW200711435A (en) * 2005-08-26 2007-03-16 Viaccess Sa A method of establishing a session key and units for implementing the method
TW200809529A (en) * 2006-02-16 2008-02-16 Technology Properties Ltd Computer system with increased operating efficiency

Also Published As

Publication number Publication date
WO2009106901A1 (en) 2009-09-03
KR20110000737A (ko) 2011-01-05
AU2009219899B2 (en) 2014-05-08
BRPI0906031A2 (pt) 2015-06-30
US8612299B2 (en) 2013-12-17
JP5603780B2 (ja) 2014-10-08
EP2096564A1 (en) 2009-09-02
MY155436A (en) 2015-10-15
US20140149342A1 (en) 2014-05-29
US10025809B2 (en) 2018-07-17
WO2009106901A8 (en) 2009-11-05
CA2716640C (en) 2015-11-24
US20110004788A1 (en) 2011-01-06
CA2716640A1 (en) 2009-09-03
RU2465634C2 (ru) 2012-10-27
CN102016842A (zh) 2011-04-13
KR101616967B1 (ko) 2016-05-12
CN102016842B (zh) 2014-07-30
RU2010136683A (ru) 2012-03-10
TW200943182A (en) 2009-10-16
EP2096564B1 (en) 2018-08-08
JP2011513825A (ja) 2011-04-28
AU2009219899A1 (en) 2009-09-03
US20180365283A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
TWI503745B (zh) 關於實時中大數量處理指令之處置及處理的改善
US11397709B2 (en) Automated configuration of log-coordinated storage groups
CA3040213C (en) Scalable log-based transaction management
US11621824B2 (en) Blockchain transaction manager
US7680793B2 (en) Commit-time ordered message queue supporting arbitrary read and dequeue patterns from multiple subscribers
US6529932B1 (en) Method and system for distributed transaction processing with asynchronous message delivery
US6917951B2 (en) System and method for replicating data in resource sets
EP3195117B1 (en) Automated configuration of log-coordinated storage groups
US20160070589A1 (en) Scalable log-based transaction management
US10685034B2 (en) Systems, methods, and apparatuses for implementing concurrent dataflow execution with write conflict protection within a cloud based computing environment
US10452684B2 (en) Sequence engine
Szekeres Designing Storage and Privacy-Preserving Systems for Large-Scale Cloud Applications
Johnson et al. Infrastructure for distributed enterprise simulation

Legal Events

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