TWI430176B - 管理持久的方法、裝置及電腦程式 - Google Patents
管理持久的方法、裝置及電腦程式 Download PDFInfo
- Publication number
- TWI430176B TWI430176B TW096123711A TW96123711A TWI430176B TW I430176 B TWI430176 B TW I430176B TW 096123711 A TW096123711 A TW 096123711A TW 96123711 A TW96123711 A TW 96123711A TW I430176 B TWI430176 B TW I430176B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- data
- persistent
- storage
- manager
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0635—Risk analysis of enterprise or organisation activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Human Computer Interaction (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Description
本發明關於資料處理系統,例如傳訊系統、檔案系統及資料庫之持久的管理。
一些已知的訊息系統提供〝持久的〞傳訊,其中訊息狀態資訊及訊息係儲存在持久儲存器中(即非揮發儲存器,例如磁碟儲存器)的記錄檔及訊息佇列資料檔。持久儲存的訊息在大部分傳訊系統錯誤與重開下能夠存續。為回應非磁碟錯誤的一錯誤,訊息狀態資訊及訊息可從記錄資料及持久儲存佇列中回復。為確保僅顯現一次訊息傳遞,持久訊息及狀態訊息之回復性是很重要的因素。
例如,傳訊管理器可於向應用程式確認一操作已成功執行於訊息上之前,儲存持久訊息至磁碟儲存器。於一般的傳訊網路中,一訊息傳送應用程式透過一API呼叫,發佈一〝put_message〞指令,以放置一傳出的訊息於一佇列中。一本地傳訊管理器程式管理這個佇列,並與其他本地應用程式或一分散式管理網路中其他傳訊管理器溝通,以傳輸此訊息至目標接受者。於一持久傳訊系統,在向傳送者應用程式確認〝put_message〞操作完全成功前,本地傳訊管理器儲存此訊息至持久儲存器中。為傳輸訊息至其目的地,一持久訊息或訊息相關資料可寫入每一put_message〞及〝get_message〞的磁碟,(於某些實施方式,訊息係位於當前同步點管理器所控制的〝工作單元〞之外),或此訊息僅於指定現在工作單元時才被記錄。由於具有分散式工作單元,訊息傳輸期間有可能於數個中介時點要避免寫入記錄檔,但被認定為〝持久的〞訊息將於一事先定義的時點被寫入持久儲存器。
反之,〝非持久的〞訊息並不會儲存至磁碟,因此當一傳訊管理器遭遇一錯誤並且必須重開,以及當傳訊管理器因操作者命令而停止時,它們係被放棄的。雖然持久傳訊於回復性及確保訊息的傳遞提供很好的優勢,持久傳訊亦具有效能成本。為每一〝put_message〞及〝get_message〞操作寫入磁碟將減少訊息的吞吐量,並增加應用程式回應時間,因此處理一些非持久地訊息乃存有一些商業上的理由。
為權衡已確保訊息傳遞及效能,IBM公司之WebSphere MQ系列產品包含支援設定持久或非持久為一訊息之選擇性的屬性,並且大量的工作已被處理以增進持久傳訊之效能(WebSphere及IBM係國際商業機器公司的商標)。藉由使用高效能磁碟儲存器、在缺少失效下進行最佳化效能之處理技術,以及有效的回復技術以處理失效來增進效能。例如,1994年3月23日申請並讓渡給IBM公司的美國專利號5,452,430描述處理持久及非持久訊息之方法,其目標是在單一訊息佇列中之不同組的頁面中藉由儲存持久及非持久資料,而從一系統錯誤的回復期中降低延遲。C.Mohan及D.Dievendorff於1994年IEEE出版通訊17(1),22-28頁之〝Recent Work on Distributed Commit Protocols,and Recoverable Messagingand Queuing〞有描述分散式確認協定及可回復傳訊與佇列領域中的發展。
然而,一般傳訊系統仍具有相對較不彈性之持久規格。一種提案是提供傳訊系統使用者一個機會,以對於不同定義的系統狀態設定不同的持久策略。於這種傳訊系統,使用者會獲得增加持久控制性的好處,但是當持久策略被設定時,持久行為仍是固定的。
當訊息持久已被設定成一期望的特性,一般傳訊系統在確保訊息完整性上仍給予過多的資源。於許多應用中,絕大部份之獨立訊息具有太低的商業價值而無法證明給予的資源,但是一般習知技藝的解決方式並不能區別不同價值之訊息或考量持久之成本或非持久的風險。
除了傳訊系統,效能與持久的權衡亦發生於資料庫、檔案系統及其他持久系統。資料庫系統中,資料一般係持久地被儲存著,但是亦可知在並未強制寫入持久儲存器下,亦儲存一些表,因此可於低負荷的儲存方案中達到查詢/結構化能力之利益。這種朝向〝瘦身〞資料庫方案導致對持久管理之彈性方法更大的需求。檔案系統不斷地被用作可靠資料上,例如以XML檔案來保持應用程式伺服器之組態資料於一資料系統中。雖然對於交易檔案系統有越來越大的需求,但現階段的解決方式卻無法提供彈性持久控制。
本發明第一態樣提供根據關於儲存至持久儲存器之成本或關於不儲存至持久儲存器之風險的至少一準則的評估,管理資料處理系統中檔案之持久的方法。此評估執行在當一磁碟寫入將被執行時,但此評估亦可執行在一資料更新之處理期間的各個時點上,以及一資料處理網路內的各個點上。
本發明可實施於傳訊系統、資料系統、檔案系統及其他儲存資料至持久儲存器之資料處理系統。本發明之第一實施例提供根據一傳訊系統中至少一準則之一動態評估,管理一訊息之持久的方法。此評估係動態地執行在訊息被產生並藉由來源實體傳送出之後才被執行的概念上。這方法包含根據資源成本或效能成本及/或儲存至持久儲存器的利益來判定訊息資料及/或關於此訊息的記錄檔是否需要儲存至持久儲存器。
於本文,儲存至持久儲存器的利益(〝持久的〞)在於,當為一特定訊息作持久判定之考量時,較佳是考量這特定訊息的價值以及損失或複製關於訊息之資料的風險。持久的利益較佳是考量損失一訊息及/或複製一訊息傳輸,或複製其他處理操作之潛在成本。例如,損失一訊息之〝成本〞可基於各自訊息的重要性,或可基於傳訊系統滿足已定義的服務需求品質之能力。持久之〝成本〞較佳是考量寫入持久儲存器之效能衝擊,較佳是參考現在可使用的資源及資源限制,例如一內部持久佇列之競爭。當一訊息透過一本地傳訊管理器或透過傳訊系統之一網路從一傳送應用程式傳輸至一目標接收應用程式,是否儲存此訊息至持久儲存器之判定可執行在各個點上。例如,可知一傳送應用程式可發佈一〝put_message〞命令,以放置一訊息至由本地傳訊管理器所管理的佇列中,且本地傳訊管理器(或〝佇列管理器〞)可傳輸此訊息至網路中的下一個傳訊管理器,並繼續下去直到此訊息到達目標應用程式之本地傳訊管理器。然後,目標應用程式從由本地傳訊管理器管理之訊息佇列中擷取此訊息。根據本發明,持久判定可執行在這通訊路徑上之每一傳訊管理器上,且此訊息在一個傳訊管理器上可為持久的,但在其他的傳訊管理器上並非持久的,取決於影響每一傳訊管理器之動態特性。
是否寫入持久儲存器之延遲及潛在重複判定係與一般持久行為在訊息產生或初次傳送時就已定義的傳訊系統有相當明顯的區別。
例如,若一訊息快速地從一第一佇列管理器QM1移動至一第二佇列管理器QM2,不需要持久地儲存此訊息在QM1上。若而後因為最後的消耗應用程式(consuming application)較慢或不動作,此訊息等待在QM2一段時間,此訊息於QM2可為持久的。一〝移動器〞(亦可稱為一訊息通道代理)係一訊息佇列管理器元件,其負責從QM1上的一傳輸佇列移動一訊息QM2上的一佇列。當一訊息被放置在由QM1所管理的一佇列,若一移動器較慢或不活躍,此訊息在QM1可為持久的。當移動器最終移動此訊息,若消耗應用程式而後較活躍,則在QM2不需要使此訊息持久。需要注意的是這些只是彈性及動態判定是否以及當期望持久地儲存一訊息或持久地記錄執行在一訊息上之操作之可能的影響之例子。額外的例子將敘述於以下〝實施方式〞之段落。
本發明之一實施例提供透過一傳訊系統訊息處理期間,管理一訊息持久的方法;此方法包含:評估一組準則中之至少一準則,這組準則表示儲存的成本及關於不儲存資料至持久儲存器的風險,以判定關於此訊息之資料是否需要儲存至持久儲存器;以及儲存關於此訊息之資料至持久儲存器,以回應上述評估步驟,其判定儲存至持久儲存器是需要的。
本發明之第二實施例提供管理一資料庫內資料之持久的方法,包含以下步驟:評估代表儲存資料至持久儲存器之成本或利益之至少一準則,以判定此資料是否需要儲存至持久儲存器;以及儲存關於此訊息之資料至持久儲存器,以回應上述評估步驟,其判定儲存至持久儲存器是需要的。此評估可進行於一特定資料輸入、刪除或更新時,或一組操作影響資料庫時。
本發明之另一態樣提供一資料處理系統,包含實施如上述之方法的一持久管理器,例如一資料庫或傳訊系統。根據本發明之一實施例的一資料處理系統包含:一揮發性資料儲存器;一非揮發性資料儲存器;一資料庫管理器,供實施資料更新至揮發性資料儲存器中之資料庫表;以及一持久管理器,供判定資料更新是否需要儲存至非揮發性資料儲存器。持久管理器評估代表儲存資料至非揮發性資料儲存器之成本或利益之至少一準則,以判定此資料是否需要儲存至非揮發性資料儲存器,然後回應一肯定的判定而啟動資料更新之儲存至非揮發性資料儲存器。
根據一實施例,一傳訊系統包含:一揮發性資料儲存,例如隨機存取記憶體;一非揮發性資料儲存器,例如磁碟儲存器;一傳訊管理器,供處理訊號傳遞;以及一持久管理器,供判定關於一訊息之資料是否需要儲存至非揮發資料儲存器。無論當一操作執行在訊息上,或接續地參照現階段儲存至持久儲存器之資源成本及/或利益,持久管理器能夠動態進行這判定。持久管理器啟動儲存關於一訊息之資料至非揮發性資料儲存器,以回應上述評估步驟判定儲存至持久儲存器是需要的。
於本發明之一實施例,在一記錄檔寫入將進行時,判定是否儲存至持久儲存器執行,檢查哪些操作應該被包含在此記錄檔寫入中。於另一實施例,這判定係藉由一非同步警示而觸發,例如回應處理這佇列之應用程式或訊息通道代理之關閉,或回應佇列深度超過訊息之臨界數量,或回應一訊息已佇列超過佇列毫秒之臨界價值。
本發明之第三態樣提供一電腦程式,包含一組指令,供控制一資料處理系統中操作之效能,以實施上述之方法。此電腦程式較佳是提供成一電腦程式產品,其中這組指令係藉由電腦程式碼實施在一儲存媒體或資料傳輸媒體中。這樣的電腦程式碼可製作而傳輸在資料通訊媒體。
本發明可實施在一單一資料處理系統內或一分散式資料處理網路內,且比起一些既存的資料處理系統,本發明藉由實施一新穎的方法管理持久提供更加的彈性。以下描述的為本發明的第一實施例,供於傳訊網路中使用。
一般的分散式傳訊網路包含複數個資料處理系統10,15,其藉由通訊鏈路20相互連結。網路的一個簡單例子僅包含兩個相互連結的資料處理系統,然而一傳訊網路可包含,例如數百個分離的資料處理系統。傳訊網路中的每一資料處理系統10,15包含一傳訊管理器30,35,其可實施成電腦程式碼或實施成使用電子電路的硬體。在一特定資料處理系統10,15上之傳訊功能可整合一應用程式40,41,其執行商業處理,但是於本實施例,應用程式40,41,45與傳訊管理器30,35係分離而互相合作的電腦程式。應用程式40,41,45可透過傳訊網路彼此溝通,且每一應用程式可透過一傳訊介面(API)50,55與一本地傳訊管理器程式30,35溝通。每一傳訊管理器30,35係依靠一硬體處理器(未顯示)之處理功能,並依靠執行在一資料處理系統上之一作業系統(未顯示)所提供的服務,且傳訊管理器處理任何需要提出網路內之系統間作業系統差異之資料傳輸。上述資料處理系統內之元件,及一隨機存取記憶體70,75與非揮發磁碟儲存器90,95係透過習知技藝中熟知的一通訊匯流排而連接。
因為本發明可實施至數種習知的資料處理系統硬體及作業系統架構,已知的資料處理系統之標準特性於此將不會詳細地描述。
圖1之傳訊系統架構有助於相對簡易應用程式之發展,並提出許多問題係關於一典型異質分散式資料處理環境中多組元件間整合及相互合作。一般傳訊功能可實施於一傳訊管理器30,35中,且應用程式40,41,45可透過傳訊API 50,55寫至各別本地傳訊管理器之呼叫功能。傳訊管理器30,35,例如IBM公司的WebSphere MQ傳訊管理器程式,透過傳訊管理器所管理的訊息佇列提供非同步訊息溝通。
例如,執行在一第一資料處理系統10之一第一應用程式40可藉由放置一訊息於受本地傳訊管理器30管理的一傳輸佇列100而與一遠端應用程式45溝通。一訊息佇列,例如本地應用程式45之一傳輸佇列100或一輸入佇列110,可簡單地為一儲存區域,其被對應的傳訊管理器保留,以它們的方式保存從一應用程式到另一應用程式之訊息。雖然圖1係結構地繪示一傳訊管理器之元件,訊息佇列100,105,110係保存於揮發性隨機存取記憶體70,75中,並且如上述,在一持久管理器80,85之控制下固持於磁碟儲存器90,95。
一通訊通道25於第一系統10與遠端系統15間的通訊鏈路20上建立在一對訊息通道代理60,65(或移動器)間。本地傳訊管理器檢查放置在傳輸佇列100中之訊息的標題,以判定網路中下一個傳訊管理器,其為此訊息將被路由至的傳訊管理器,然後移動器60,65負責從傳輸佇列100傳輸相關的訊息至由第二傳訊管理器35管理的一佇列。若第二傳訊管理器僅為路由至目的地傳訊管理器的一中繼節點,新的佇列再次為一傳輸佇列105,其係當作訊息之一暫存儲存庫,直到此訊息可被傳遞至下一個網路節點,但是若第二傳訊管理器35為目的地應用程式45之本地傳訊管理器,此訊息將被置放至由應用程式45提供服務之一應用程式輸入佇列110,當應用程式可以處理訊息的時候。
置放訊息於第一傳輸佇列100、移動訊息至應用程式輸入佇列110,以及應用程式45從這輸入佇列110擷取訊息之步驟係非同步地執行,使得應用程式40,45間不需要一持續的、專屬的連線。雖然未顯示於圖1,從一第一傳送系統10至一遠端目的地系統15可具有多個非同步跳躍(hop)跨越網路。
於一些已知的傳訊系統,訊息可依據一系統管理器或傳送應用程式被持久地或非持久地傳輸。一持久管理器80,85根據通訊應用程式或傳訊管理器所需之指定的持久(無論是於應用程式或傳訊管理器間傳送的所有訊息,或是僅部分之訊息)將訊息寫入一持久儲存器90,95(例如,非揮發磁碟儲存器)。當此訊息被傳送者應用程式之本地傳訊管理器30放置於第一傳輸佇列100時(即佇列之複製可儲存至磁碟儲存器),一持久的訊息可儲存至本地持久儲存器90;當此訊息被放置於傳輸佇列100以及當此訊息成功地從傳輸佇列100移動至應用程式輸入佇列110時,本地記錄檔可被寫入本地持久儲存器90。訊息及相關的記錄檔可寫入第二系統15之一第二持久儲存器95,當此訊息被放置於應用程式輸入佇列110時,且紀錄檔亦可被寫入,當此訊息被目標應用程式45從這佇列110擷取時。
於一些傳訊系統,因為記錄檔必須在系統錯誤後能回復,因此記錄檔在定義一操作(例如置放一訊息至一佇列或從此佇列擷取此訊息)完成之前必須被寫入。然而,更新至一佇列之持久複製可能被〝怠惰地(lazily)〞寫入(如一背景工作,除了在一般系統關閉上強迫怠惰寫入)。
儘管持久地寫入記錄檔時可達成可回復性並確保隨後訊息傳遞之優點,這種磁碟寫入在效能上有明顯瓶頸。一些已知系統對分散式交易提供支援,此可減少硬化磁碟的記錄檔次數(即,於提出工作之分散式單元時寫入持久儲存器,而非於每一置放、取得或其他更新操作上)。一些很多操作係平行執行的已知系統結合數個操作之記錄檔於一單一緩衝器,同時並驅使它們至磁碟。這些特性提供增進的效能,但是持久及記錄檔處理仍是一效能瓶頸。
於一個已提出的系統中,使用者能指定一期望的持久策略,其致能不同系統狀態設定不同的持久行為。然而,當持久需求被指定時,此行為仍是事先定義的,且因此於動態回應現階段環境以及儲存至持久儲存器之成本與利益的考量下,不能達到實際的靈活性。
本發明藉由避免所需的持久之事先定義及不靈活規格的限制,提供更好的彈性。藉由基於一組準則,包含訊息價值及儲存至持久儲存器之成本及利益,執行一延遲的判定是否儲存至持久儲存器,可完全避免一些持久儲存操作。當一訊息從訊息傳送者前進至訊息目的地時,此成本及利益的準則可於傳訊網路內之各個點評估。
參考圖2,根據本發明之一第一實施例的一傳訊系統10係描述於下。應用程式40,41可透過一傳訊管理器30彼此互動,並與其它應用程式(其可位於網路中任何地方)互動。傳訊管理器30處理訊息傳遞通過一網路,以回應應用程式作成的API呼叫,並使用本地資料處理系統10之可取得的網路通訊特性及作業系統特性。傳訊的本地應用程式、API 50及傳訊管理器30係圖例表示於圖2。一揮發性隨機存取記憶體70及非揮發磁碟儲存器90亦圖例表示於圖2。
當一應用程式產生一訊息,一持久屬性與此訊息產生關聯。如習知技藝所知,這屬性可明定〝持久的〞或〝非持久的〞或第三個選擇,其中明定持久將基於此訊息所置放的一佇列之佇列定義。持久屬性可自動地及一致地針對每一訊息作設定(使用此應用程式或此訊息所置放的佇列之預設訊息描述設定),或此應用程式可選擇性使用持久欄位於訊息描述內,以明定各別的訊息為〝持久的〞或〝非持久的〞。於一般的傳訊系統,一〝持久的〞訊息需要儲存至持久儲存器,而〝非持久的〞訊息則不需儲存至持久儲存器,因為其損失(即一個偶發的訊息損失)可被應用程式容忍。因此,應用程式所明定的持久屬性定義一般的傳訊系統之隨後的行為。擷取並閱讀此訊息的程式可存取此持久屬性,並確保任何回覆訊息以相同的持久屬性被傳送。
於一些已知的傳訊系統,一訊息由兩個分開的部分構成,即應用程式明定的資料,其通常稱為訊息內容或訊息承載資訊(payload),以及一訊息標題(header),其包含一訊息描述(MQMD)及其他結構欄位。此應用程式資料並不限於任何特定的資料種類,且可包含例如字元串、位元組設定、二位元整數、浮點數等。此結構欄位保存訊息之描述,包含產生此訊息之傳訊系統30之版本、於時間佇列順序中處理訊息的時脈數、資料長度及可能的一截止時間等訊息。訊息描述被傳送應用程式40傳遞至傳訊系統30,然後被傳訊系統30傳送至接收的應用程式45。若傳送應用程式需要,訊息描述可含有持久屬性(MDMQ持久)及一優先性屬性(MQMD優先性)。此優先性屬性係用來允許傳送應用程式指定一訊息之緊急性,且當傳訊管理器於訊息佇列中決定訊息的順序時,傳訊管理器可將優先性價值列入考量。然而,目的地佇列可定義成先進先出(FIFO)佇列,其中假設忽略優先性屬性。
如上所述,本發明實施一較不硬性規定的持久管理方法,但是本發明之某些實施例使用如上述之持久屬性。於第一實施例,持久屬性指示是否一訊息應該永遠被非持久地處理(如上述傳統的非持久訊息之處理),或當儲存至持久儲存器之利益大於損失,此訊息是否應該持久地處理。當一訊息來源傳送訊息之後,被傳送應用程式標示〝持久的〞之訊息具有執行於他們身上的一持久決定。這〝名義上持久的〞訊息之延遲的成本/利益相較不同於習知的方式,其於傳訊系統中在此訊息被傳送出之後,並未基於動態準則之評估做出持久決定。於這個本發明之實施例中,當一〝名義上持久的〞訊息被一組準則(即至少一準則)判定之後,其只儲存至持久儲存器,這組準則由傳訊系統於處理訊息期間進行評估,而非這些訊息總是持久地被儲存著。
傳送應用程式40藉由辨別特定應用程式訊息資料及訊息描述,置放一新訊息至一佇列。訊息描述判別一目標訊息佇列及目標傳訊管理器35,且這用來判別訊息該加入的一第一訊息佇列。傳訊管理器之網路處理從這第一訊息佇列至目標應用程式之輸入佇列之訊息的傳送(以執行在相同資料處理裝置的兩個應用程式之限定架構,一單一傳訊管理器可支援它們之間的溝通,然而於大多數的架構中,有一傳訊管理器之分散式網路支援非同步的訊息傳輸於一分散式實體網路中)。
當一傳訊系統接收或應用程式從一各自的傳輸佇列或應用程式輸入佇列擷取一訊息,傳訊管理器或接收應用程式辨別一些關於此訊息將被擷取的資訊,並辨別置放此訊息的緩衝儲存空間(以及此緩衝儲存空間的長度)。擷取的傳訊管理器根據辨別的持久屬性來處理此訊息。
於本發明之第一實施例,非持久及〝名義上持久的〞訊息係置放於單一傳訊佇列之分開的頁面組120,130,以簡化訊息順序,並於一失效事件發生時,致能高效率的回復處理。這種方式描述於美國專利號5,452,430中,除了於美國專利5,452,430中持久屬性在沒有參照儲存至持久儲存器之成本及/或利益下,係由接續的持久行為所限定。於本實施例,分配成非持久訊息而保存在頁面組之訊息並不會被持久地儲存,但是指派成名義上持久訊息而保存在頁面組之訊息係規劃成等待儲存至非揮發磁碟儲存器。在實際等待資料至磁碟儲存之前,係執行持久成本及利益因子的一評估。
持久之成本及利益的評估可執行在各個時點上,且可將各種因子列入考量。首先,當一訊息被一傳訊管理器寫入一佇列,此評估可由傳訊系統執行,隨著此訊息通過傳訊網路。這使有價值的訊息能夠立即儲存至持久儲存器。其他促進評估效能的〝觸發事件〞可基於傳訊系統內之事件,例如當一給予的佇列達到臨界時間,或當一各字的訊息已被住列一臨界時間。此評估亦可藉由記錄檔之操作而觸發,例如使用系統之警覺其將強制一記錄檔緩衝一毫秒,以判定一額外的操作能以非常低的支出(overhead)同時間被記錄。於這情形,關於持久一特定記錄檔之一低資源成本之辨別意指此記錄檔可比其他情形更早地寫入磁碟。其他的〝觸發事件〞可包含系統事件,例如:當傳訊系統警告即將系統關閉,或可能的系統失效。之後的例子可偵測是否磁碟儲存子系統偵測到一壞的磁區寫入。
這種供評估儲存至持久儲存器之成本及利益的〝觸發事件〞及臨界值可動態的針對每一訊息。例如,當一訊息先被置入一佇列而由傳訊系統所執行的評估可判定一訊息為相當有價值的,但還不夠有價值立即寫入。這初始的評估然後將設定一短時間成一觸發事件於這特定的訊息上。當這時間到點時(即〝觸發事件〞發生),此訊息在沒有進一步評估下可強制進入磁碟,或可進行一第二評估。
因為一初始的評估包含重要的處理,例如判定〝訊息價值〞(見下方)或其他資料,於本發明之第一實施例,為第一評估而收集來的資料流經網路,且隨後為同一訊息而執行的評估再次使用這些收集的資料。於一實施例,用來於傳訊管理器間傳遞訊息的通訊協定係延伸來使一計算的訊息價值能夠與此訊息一起傳遞,以於連接的傳訊系統上致能高效率的持久評估。於其他的實施例,一傳訊API係延伸來使一訊息價值能夠明確,例如於訊息標題之一額外的欄位內(如以下更詳細的敘述)。
於每一傳訊管理器30,一資料收集元件140維持特定訊息資料之收集,包含一訊息價值即更一般的訊息處理統計資料,以用於評估本地系統所保存之訊息的成本及利益之評估。一組規則保存於一規則儲存器150,並由持久管理器80之一評估元件160將此組規則施予這些收集的資料。收集元件140從處理效能之分析及傳訊系統30內之資料結構中探索各個資訊,然後以此資訊更新一組資料庫表。
傳訊管理器能以數種方法之其中之一判定訊息價值。例如,一訊息價值可基於訊息種類並參照與訊息被置放之佇列相關的規則而計算。或替代地,一訊息價值可由一接收的傳訊管理器藉由分析訊息內容(例如,無論通訊應用程式在哪邊處理,累積、傳遞及價值係明定於訊息內容中)而判定,或參照訊息標題中之一訊息價值欄位。後者之方式係實施於本發明之實施例中,其中一訊息價值由傳送應用程式透過傳訊API(見下方)而明定,且其中一訊息價值僅被傳送應用程式之本地傳訊管理器計算一次。
更高階的架構,例如服務取向的架構(SOA),為一般供系統實施的架構,以保存一佇列間之關聯、於這個佇列中允許的訊息種類、這些種類之訊息格式、及其他與訊息有關的語義資訊及其處理。於本發明之一SOA實施,語義資訊包含訊息價值(或SOA實施規則中計算價值之元件)。這資訊皆由高階語義元件在不需明確的傳訊API之程式下與傳訊管理器溝通。傳訊管理器不需知道這些訊息價值是否透過傳訊API被直接提供或已透過一高階SOA系統被判定。
於一更原始的系統中,使用瞭解訊息語義並可擷取或衍生一訊息價值之API交叉存在(API crossing exits)程式可達到類似的功效。再次,messageValue在不需要由應用程式設計者撰寫詳細的API碼之情形下可傳輸至傳訊系統。再次,傳訊系統可以不知道訊息價值資訊的來源。
佇列深度亦被監控(如一些已知的傳訊系統),且這些資料係提供給資料收集元件140。此外,一訊息停留在一佇列時係與保存在佇列之項目的總容量一起被監控(於已知的傳訊系統中,這監控涉及一點支出,因為此訊息已為可取得的,雖然未被明顯地監控著)。此外,訊息從一佇列被讀取的速率及一般訊息停留在佇列的時間,以及更進階之基於統計的估算,例如達到佇列頂端的預計時間,可一起被監控。CPU支出也是習知系統中另一個常被監控的系統特性,且這資料對於持久評估而言是重要的,因為很大的CPU負載常與系統失效有關。此外,已知一些程式比其他程式具有一更進一步之效能,且這是因為判斷是否執行一持久儲存操作。
於一第一例子之實施例,傳訊管理器30監控自己內部訊息速率,並提供一價值給收集元件140,此價值代表每秒從佇列讀取訊息的數量。收集元件140施予訊息速率一指數平滑演算法,以產生將儲存在資料庫的一價值(messageProcessingRate)。收集元件140也監控每一訊息在自己各自的訊息佇列(positionInQueue)的位置。在訊息加入佇列時判定這個位在佇列中(positionInQueue)價值,並可隨後更新。傳訊管理器之收集元件140也產生失效間之時間的一統計平均(meanTimeToFailure),其包含任何傳訊管理器、作業系統或資料處理系統之硬體失效。同樣地,可使用其他統計(一些既有的系統管理產品已監控的項目,例如磁碟寫入錯誤)及一些外部因子,例如可能引發系統失效之雷雨、電源供應可靠度或地震風險。
收集元件140取得(從傳訊管理器30或作業系統)代表現在傳訊系統負載的一價值(load)及代表傳訊系統上平均負載的一統計價值(avgLoad),以及持久訊息每秒寫入磁碟的一平均數量(persistPerSec)。
可維持一或更多timeInProcess價值來代表一訊息從佇列頂部被擷取之後,處理此訊息花費的時間。例如,當現在的傳訊管理器30為目標傳訊管理器,timeInProcess為這個訊息被本地應用程式發佈一〝get_message〞命令之擷取與做出訊息擷取操作之間的時間,其中目標訊息管理器係管理目標應用程式的輸入佇列。當傳訊管理器為傳送應用程式之傳訊管理器與目標目的地應用程式之傳訊管理器之間的一中介處理節點,timeInProcess為訊息從本地傳送佇列之頂部被擷取(訊息初始時就被置入)與做出訊息傳輸操作,以傳輸至其他節點之間的時間。
以上述的資料更新一資料庫,然後可由持久管理器80之評估元件160實施一組保存在規則儲存庫的規則來處理此資料。評估元件160處理positionInQueue及messageProcessingRate價值以計算一估計的時間,供訊息達到訊息佇列之頂部(timeToHeadOfQueue):timeToHeadOfQueue=positionInQueue/messageProcessingRate
評估元件也估算一訊息將被傳訊管理器保存的時間(timeHeld):timeHeld=timeToHeadOfQueue+timeInProcess
參照保存訊息及失效間的平均時間,可計算出損失特定訊息的一估算風險:riskOfLoss=min(1,timeHeld/meanTimeToFailure)
訊息損失之風險估算的評估可接著用來判定是否執行儲存至持久儲存器。由持久管理器80之評估元件160所進行的這些事先的評估步驟在還未考慮訊息價值的情形下,考量損失特定訊息之風險。雖然一些本發明之實施例在未考慮訊息價值的情形下,評估訊息損失並判定所需的持久,較佳的方式是基於各自的訊息價值評估損失訊息之風險,無論是只考慮因子,或結合訊息效能統計或資源成本考量。如此,代表損失訊息之成本的一價值可與代表損失訊息之風險的一價值,以及關於系統資源需求之額外的準則結合。例如:riskCost=messageValue * riskOfLoss
參照load及avgLoad價值及persistPerSec價值可計算出一perisitenceCost價值,當riskCost超過persistPerSec時,做出儲存資料至持久儲存器的決定。這persistPerSec係以執行儲存資料至持久儲存器所需之資源為基礎,或可計算出持久對於系統效能之影響的評估,且用來影響持久判定。
若(riskCost>persistenceCost)則persistence=true若(riskCostpersistenceCost)則persistence=false
根據特定客戶之傳訊應用程式之服務合約之品質需求,這持久判定可基於是否傳訊系統需要使效能優先或僅確保訊息傳遞一次。
即使一簡單的規則,例如上述之示範,可實施而增進一訊息管理系統之成本效益。雖然上述之規則示範操作並說明本發明之動態原則如何具體實施,可知有很多替代的規則可用來判定持久。取決於持久管理器取得之資訊,這些規則可比上述之例子更複雜。
圖3根據本發明之一實施例,提供收集器140及持久管理器80之評估元件160一些更詳細的說明。元件141為傳訊管理器自己所提供之資訊的一收集器,這些資訊包含佇列深度與佇列中每一訊息之位置,以及各自的傳訊管理器之內不訊息處理速度。收集器140亦包含一分離的外部收集器元件142,其提供一些資料,例如關於系統負載、失效之計算的平均時間,以及關於偵測到的磁碟寫入錯誤資訊。元件141及142都提供它們資料給一收集器資料庫143,其為評估器160之評估處理元件162所使用的監控資料來源。評估器160也包含一觸發元件161,其為回應由內部及外部收集器元件141及142產生之事件,並回應關於持久寫入之設定時間之到點。規則儲存器150可包含下述兩者之任一或兩者皆包含:(i)關於傳訊管理器之操作特定狀況之規則;以及(ii)關於資料處理系統內但與傳訊管理器之內部工作分離之狀況的規則。雖然傳訊管理器30之內部元件係表示於圖2及圖3,持久管理器80之一些或所有元件可被實施成一或更多資料處理系統10之元件,其互相分離但與傳訊管理器30合作。
讓我們考慮計算電話使用費用之一應用程式,其中電話交換係發出將傳送給客戶付賬之電話紀錄。很多紀錄僅幾分錢且不具有任何價值,然而某些紀錄價值一筆數目(例如50分或一元)而一小部分的電話紀錄價值很多錢。付賬應用程式不應該損失高費用的電話紀錄,且因此這些永遠被持久地處理,但小於一臨界值(例如1分或10分)之紀錄則不具有花費持久的處理之成本的價值。以一可信賴的資料處理系統,錯誤及失效相對較少且為了增進處理系統效能,一些具較低價值之電話紀錄的損失是可以接受的。中等價值之電話紀錄可對待為名義上持久的但僅儲存至環境中的持久儲存器,其中效能成本係由估計的訊息損失風險判斷。
於不同的應用程式,判定是否基於關於持久的成本及利益之準則的評估而持久地儲存資料可施予所有資料項目,或僅施予高價值的項目(而其他對待為非持久的),或僅施予低價值的項目(而其他對待為持久的)。
以1分的電話為例,第一訊息價值(messageValue)=1.0。假設訊息處理速度為每秒1000個訊息,且平均處理時間(timeInProcess)為0.2秒,平均失效率為每10天一次。假設訊息係佇列加入的第四十個訊息:messageValue=1.0 messageProcessingRate=1000 PositionInQueue=40 TimeToHeadOfQueue=positionInQueue/ messageProcessingRate=0.04 TimeInProcess=0.2 TimeHead=TimeToHeadOfQueue+timeInProcess=0.24 meanTimeToFailure=10 x 24 x 60 x 60=86400 riskOfLoss=min(1,timeHeld/meanTimeToFailure)=2.78e-7 riskCost=messageValue * riskOfLoss=2.78e-7
若persistenceCost=3.l7e-7(riskCost<persistenceCost),則訊息將不會持久地儲存。
然而,10分的電話將持久地儲存,因為:riskCost=10 * 2.78e-7=0.00000278>3.17e-7 riskCost>persistenceCost。
應該注意的是,一般系統中persistenceCost不會是一個常數值。例如,當要執行所有保存在緩衝器之記錄檔之磁碟寫入時,相較於沒有其他資料一起寫入時執行磁碟寫入後之persistenceCost,與新訊息之單一記錄檔相關之persistenceCost可能是很小的。
於電話收費之例子中,傳送一訊息之生意成本失效與電話的成本相當接近(可能與某些客戶一樣高,就像他們的電話之準確的記錄)。這生意成本之複製傳送較不易量化(大部分的客戶對於複製收費比較低的收費有較多的反應),但傳訊系統外的系統特性可用來偵測複製,其中消除複製之狀況可視為一處理成本而非一生意成本。且,已知的傳訊方式已實行協定,這些協定謹慎地處理訊息之讀取/刪除之記錄,並謹慎地處理任何回覆的通知。因此,這描述主要的重點是傳送一訊息而非複製之風險及關於失效的成本,但是本發明也可實施來估計複製傳送的成本。
訊息基於如上述之riskCost計算,可置放於一〝持久佇列(persistence queue)〞(意欲儲存至持久儲存器之佇列項目)。於一實施例,riskCost及佇列中每一訊息之位置可週期地再被計算,或可回應事件,例如消耗者應用程式之啟動或停止,而再被計算。高價值之訊息可移至佇列頂部而很快地被持久地處理,然而低價值之訊息的之持久相較於高價值之訊息可延遲地處理,使得最低價值之訊息在持久前已被處理。
上述例子之規則及參照電話收費之特定例子僅為一種例示的考量,其可實施來判定是否持久地儲存資料。根據是否特定系統之持久瓶頸之判斷,其考量失效預測及統計,例如佇列深度及CPU負載,或例如訊息大小之參數,藉由改變複雜度程度,可實行很多替代的規則。
雖然熟習此技藝人士可將這種規則作很多變更,很明顯地,任何基於儲存至持久儲存器之成本及利益之動態準則之評估而判定是否儲存至持久儲存器與習知方式不同,習知方式中持久行為係事先定義的。上述實施例可致能一些持久儲存操作被忽略,以減少關於寫入記錄檔及訊息佇列至磁碟儲存器之效能瓶頸,其中儲存磁碟之環境係判定儲存至持久儲存器是非必要的。
現在將描述一些例示的機制來進一步說明傳訊系統中本發明之實施性及潛在性利益。例如,一訊息佇列很快地被一主動的客戶(或如上述之一移動器)汲取,如上述之一持久判定決定將增加至佇列之訊息不需要持久地儲存。然而,若客戶因為,例如客戶所使用的其他資源失效而關機,其他持久判定可能被執行成不同的結果。使用上述之方式,其中訊息可能維持在佇列而增加的時間將導致增加的riskOfLoss,且因此一較高的riskCost驅使持久地儲存佇列上之訊息。這持久之決定可以僅施予剛抵達的訊息,或可追溯所有等待中的訊息。
為了說明此例,請思考一傳訊網路,其中一初始產生者透過一第一傳訊管理器QM1傳送一訊息,第一傳訊管理器QM1然後使用一移動器來傳送訊息至一第二傳訊管理器QM2,第二傳訊管理器QM2將訊息置入佇列供最後的消耗者擷取。若是一般的訊息可快速地從初始產生者移動至QM1然後移動至QM2,然而最後的消耗者很慢或不活躍,訊息不會持久於QM1而可能持久於QM2。或替代地,若移動器很慢或不活躍當訊息已置入時,則訊息訊息可能持久於QM1。若當移動器最後移動此訊息而消耗者已開始活躍,此訊息將不持久於QM2。
若訊息具有很低的價值,它不需要持久於任何傳訊管理器,而若訊息具有很高的價值,則此訊息將持久於兩邊的傳訊管理器。高價值的訊息可移動至持久佇列頂端,且比起低價值的訊息可很快地被持久地處理,低價值的訊息傾向於持久前便被處理。
如上述所提及,本發明某些實施例允許一訊息價值透過一傳訊API而被指明。上述之描述包含一第一實施例,其中訊息價值(例如指明於一新訊息標題欄位MQMDmessageValue)係用來結合持久屬性(MQMD持久),其明定三個選擇中之其一:PERSISTENT、NON_PERSISTENT及PERSISTENT_AS_Q_DEF。NON_PERSISTENT訊息以習知處理來描述,且評估其他訊息來判定是否環境判斷忽略它們的〝名義上持久〞狀態。於另一實施例,一傳訊系統提供一額外的欄位於一傳訊之固定訊息標題(MQMD)中,傳訊之固定訊息標題係關於持久屬性(MQMD持久),以取得訊息價值,亦致能一新的持久屬性選項PERSISTENCE_BY_VALUE。一訊息傳送應用程式然後可指明為以下其中之一:〝PERSISTENT〞 〝NON_PERSISTENT〞 〝PERSISTENT_AS_Q_DEF〞 〝PERSISTENCE_BY_VALUE〞;value
此訊息價值欄位可為32位元整數或32位元浮點數字,以分為單位,且具有一預設值,例如-1,代表當欄位未被設定時。
於另一實施例,已知的〝PERSISTENT_AS_Q_DEF〞屬性價值可傳遞通過傳訊網路,直到最後的消耗者應用程式之輸入佇列。這屬性價值可回應由來源傳訊應用程式及其他傳訊應用程式藉由執行本發明之持久評估及判定。
於另一實施例,並非增加訊息價值至既有的持久屬性,透過API明定之訊息價值提供判定所有訊息持久的基礎。
需注意的是已於以上以文字描述本發明之應用及系統,其中本發明欲藉由避免一些持久儲存器之寫入來減少持久訊息或其他更新之支出。一替代的方法將一〝持久的〞訊息傳送者規格處理成一絕對的需求,但允許有價值的訊息明定為〝非持久的〞,以由持久訊息處理獲得利益,當評估準則判定這為適合的。例如,在偵測一實際的系統失效或指示具有系統失效之風險之某些狀況下,具有很高價值的訊息可持久地處理或所有訊息可持久地處理一段時間。
圖4及圖5提供根據本發明之一實施例,一方法之步驟的一簡化表示。如圖4A所示,此方法開始於一第一應用程式40產生200一訊息,此訊息具有一訊息承載資訊與含有關於傳送者之資訊的一訊息標題、目標傳訊管理器與訊息佇列之一辨識,以及一組屬性。於第一實施例,傳送者應用程式明定以下持久屬性之其一:〝PERSISTENT〞、〝NON_PERSISTENT〞或〝PERSISTENT_AS_Q_DEF〞。應用程式發佈一〝put_message〞命令來置放訊息於由一本地傳訊管理器30所管理的一訊息佇列。本地傳訊管理器基於目標傳訊管理器之辨識(並基於一實施例中之持久屬性,其中持久的及非持久的訊息係置入同一佇列之分開的頁面組或置入不同的佇列)來確認一合適的本地佇列供此訊息置入。若本地佇列為路由至遠端目標佇列中一中繼傳輸佇列,隨後(並非同步地)本地傳訊管理器之一移動器元件擷取220此訊息,供透過多個中繼傳訊管理器傳輸至遠端傳訊管理器。然而,當訊息保存在受本地佇列管理器30管理的一佇列中,本地持久管理器80負責判定230是否此訊息及關於此訊息之記錄檔資料應該儲存至持久儲存器。這判定可週期地或回應觸發狀況而執行。如先前之描述,例示的觸發狀況包含例如訊息置入佇列或偵測到系統問題之事件,或佇列深度到達一訊息之臨界值數量之狀況。若持久管理器判定需要儲存至持久儲存器,儲存操作立即被執行240(雖然於其他實施例,寫入磁碟之指示係自己以優先性順序置入佇列)。若持久管理器判定現在不需要儲存至持久儲存器,持久管理器可設定250一計時器,在到設定時間之尾端供任何還在佇列中之訊息下一次評估及持久判定。顯示於圖4A之更詳細的方法步驟如以上之描述。
圖4B表示於一資料處理系統而非訊息來源系統由一傳訊系統及持久管理器所執行的步驟。傳訊管理器接收300來自其他傳訊管理器之一訊息並讀取310此訊息標題與此訊息之其他資料欄位,以辨別目標傳訊管理器及目標佇列,且辨別訊息屬性,例如優先性及特定持久。之後,以如圖4A所示之方式處理此訊息,藉由一移動器或本地應用程式擷取320此訊息,一持久管理器執行此訊息持久之成本及利益的評估300,接著啟動340一寫入磁碟或延遲350持久直到一計時器到點。
圖5表示根據本發明其他實施例,執行於來源傳訊系統之一方法之步驟。傳送應用程式再次產生400一訊息並發佈一〝put_message〞命令,其辨別目標傳訊管理器與佇列。然而,並非明確地指明一持久屬性,傳送者指明400一訊息價值於訊息標題內。本地傳訊管理器30讀取410此訊息標題並決定本地佇列來置放此訊息,且因此將訊息置入佇列。於此實施例,不同價值的訊息被儲存至相同佇列。假設目標佇列不受本地佇列管理器管理,位於本地傳訊管理器中之一移動器隨後擷取420此訊息並傳送此訊息至下一個傳訊管理器,以路由至目標傳訊管理器。訊息價值隨著訊息傳輸,以致能此訊息所路由經過的任何傳訊系統能執行持久判定。當訊息保持於本地,本地持久管理器80負責判定是否儲存此訊息至本地持久儲存器90。持久管理器於讀取其佇列上之訊息的標題資訊,並執行430儲存至持久儲存器之成本及利益的評估。如上述,此評估考量訊息價值於估計持久地儲存之利益,例如對於一給予的訊息,失去或複製此訊息之商業成本以及訊息損失之風險。持久管理器然後啟動一磁碟寫入或設定一計時器下一個評估的時間,如上述。
圖6表示一資料庫系統,其顯示本發明其他實施例供管理資料庫更新之持久儲存的元件。此系統之各種元件包含藉由一系統排線560連接在一起的一處理器500、輸入/輸出元件510、一揮發性隨機存取記憶體(RAM)520、一非揮發性磁碟儲存系統530、一資料庫管理器540以及一持久管理器550。持久管理器550包含一資料收集器551、一觸發器元件552、一規則儲存器553以及一評估元件554。資料庫管理器540管理一組保存在RAM 520之資料庫表570,其執行讀取及寫入資料更新(增加、刪除及更新)至資料庫570。收集器元件551偵測資料更新,並儲存關於更新之訊息及關於資料庫系統狀況之其他訊息至RAM 520中之一第二資料庫580。回應由觸發元件552所辨識之觸發狀況,評估元件554施予由規則儲存器553取得的規則於保存在第二資料庫580之資料,評估儲存至持久儲存器之成本及利益。此評估用來執行判定是否儲存資料更新至非揮發性資料儲存器530中之資料庫570之持久複製器590。這提供一種資料庫系統,其適合低價值資料項目之低支出的(且潛在性高效能)儲存,因為將資料寫入非揮發儲存器(如磁碟儲存)的執行係僅於評估需要一持久儲存的一正向判定時。
10,15...資料處理系統
20...通訊鏈路
25...通訊通道
30,35...傳訊管理器
40,41,45...應用程式
50,55...API
60,65...訊息通道代理
70,75...隨機存取記憶體
80,85...持久管理器
90,95...非揮發磁碟儲存器
100,105,110...訊息佇列
120,130...頁面組
140,141...資料收集元件
142...外部收集器元件
150...規則儲存器
160...評估元件
161...觸發元件
162...評估處理元件
163...收集器資料庫
500...處理器
510...輸入/輸出元件
520...揮發性隨機存取記憶體
530...非揮發性磁碟儲存系統
540...資料庫管理器
550...持久管理器
551...資料收集器元件
552...觸發器元件
553...規則儲存器
554...評估元件
560...系統排線
570...資料庫表
580...第二資料庫
590...持久複製器
本發明之實施例藉由範例將於下敘明,並參照附加的圖式,其中:圖1為習知簡易分散式傳訊系統之代表圖;圖2為本發明之一實施例的一傳訊系統代表圖,其顯示可合作已達成持久管理的系統元件;圖3顯示根據圖2之實施例,傳訊系統之某些元件之更詳細的部份;圖4A及4B表示根據本發明之一實施例,管理持久之方法的步驟的一簡化流程圖;圖5顯示根據本發明之另一實施例之方法的步驟的一簡化流程圖;圖6為根據本發明之另一實施例,一資料庫管理系統之一圖例表示。
500...處理器
510...輸入/輸出元件
520...揮發性隨機存取記憶體
530...非揮發性磁碟儲存系統
540...資料庫管理器
550...持久管理器
551...資料收集器元件
552...觸發器元件
553...規則儲存器
554...評估元件
560...系統排線
570...資料庫表
580...第二資料庫
590...持久複製器
Claims (29)
- 一種資料處理裝置,包含:一處理器;一揮發性資料儲存器;一非揮發性資料儲存器;以及一持久管理器,供管理資料儲存至該非揮發性資料儲存器,其中該持久管理器包含用以評估一組準則中之至少一準則的一裝置,該組準則表示儲存的成本及關於不儲存資料至該非揮發儲存器的風險,以判定該揮發性資料儲存器持有的一資料更新是否需要儲存至該非揮發性資料儲存器。
- 如請求項1所述之資料處理裝置,其中該用以評估的裝置包含一裝置用以評估表示儲存資料至該非揮發性資料儲存器的一成本的至少一第一準則,及表示關於不儲存資料至該非揮發儲存器的一風險之一第二準則;以及用以比較該成本與該風險以作出該判定的一裝置。
- 如請求項1所述之資料處理裝置,其中該持久管理器包含供評估在不儲存該資料更新至該非揮發性資料儲存器下損失資料的一風險的一功能。
- 如請求項3所述之資料處理裝置,其中該持久管理器包含供基於該資料更新之一價值及損失資料之該風險來計算損失資料的一潛在成本的一功能。
- 如請求項1所述之資料處理裝置,其中該持久管理器包含供評估在不儲存該資料更新至該非揮發性資料儲存器下複製一資料更新之一風險的一功能。
- 如請求項1所述之資料處理裝置,其中該持久管理器包含供評估該資料處理裝置的一效能特性的一功能。
- 如請求項1所述之資料處理裝置,其中該持久管理器包含供評估在記錄檔將寫入該非揮發性資料儲存器之前所剩餘的時間一功能。
- 如請求項1所述之資料處理裝置,更包含一傳訊管理器,其中該持久管理器包含以下功能:於傳訊管理器處理一訊息期間,評估一組準則中之至少一準則,該組準則表示儲存的成本及關於不儲存與該訊息有關之資料至該非揮發儲存器的風險;由該評估判定是否儲存與該訊息有關之資料至該非揮發儲存器;以及回應一肯定的判定,啟動儲存與該訊息有關之資料至該非揮發儲存器。
- 如請求項8所述之資料處理裝置,其中該評估的執行係回應一訊息屬性,該訊息屬性指示該訊息為儲存至該非揮發儲存器的一候選(candidate)。
- 如請求項9所述之資料處理裝置,更包含一傳訊API,該傳訊API提供訊息持久選項,包含至少一訊息屬性值係選自由以下項目所組成之群組:持久;非持久;藉由參考訊息佇列定義所判定之持久;以及藉由參考訊息價值所判定之持久。
- 如請求項10所述之資料處理裝置,其中該傳訊API提供用以設定一訊息價值的一裝置,並提供至少該訊息持久選項〝藉由參考訊息價值所判定之持久〞。
- 如請求項8所述之資料處理裝置,其中用來評估的該持久管理器之功能包含用以評估一訊息之資料不儲存至該非揮發性資料儲存器而損失資料之一風險的一裝置,以及用以評估依據該訊息之價值與該損失有關之一成本的一裝置。
- 如請求項12所述之資料處理裝置,包含複數個資料處理系統,透過一網路相連以通訊,每一資料處理系統包含:一處理器、一揮發性資料儲存器、一非揮發性資料儲存器、一傳訊管理器,以及一相關的持久管理器,供判定是否儲存與該資料有關之訊息至各別的非揮發性資料儲存器;其中位於一第一資料處理系統一第一傳訊管理器包含用以判定一訊息價值,供用於位於該第一資料處理系統的一第一持久管理器的一裝置,以及用以傳送該已判定的訊息價值至位於 一第二資料處理系統的一第二傳訊管理器的一裝置;以及其中該第二傳訊管理器包含用以識別該訊息價值並提供該已識別的訊息價值至位於該第二資料處理系統的一第二持久管理器的一裝,以致能該第二持久管理器判定是否儲存關於資料之訊息至該第二資料處理系統之一非揮發性資料儲存器。
- 如請求項8所述之資料處理裝置,其中該持久管理器供評估之功能包含依據關於該訊息之資料損失的一計算風險,來評估儲存該關於該訊息之該資料至該非揮發性資料儲存器之利益的一裝置。
- 如請求項8所述之資料處理裝置,其中該持久管理器回應到達一佇列深度臨界值的一訊息佇列,以啟動評估、判定及啟動對該非揮發資料儲存器儲存的功能。
- 如請求項8所述之資料處理裝置,其中該持久管理器回應該傳訊管理器執行關於該訊息之一操作,以啟動評估、判定及啟動對該非揮發資料儲存器儲存的功能。
- 如請求項16所述之資料處理裝置,其中該操作包含置放該訊息於一佇列,該佇列被該傳訊管理器管理。
- 如請求項1所述之資料處理裝置,更包含一資料庫管理器,供施加資料更新至該揮發性資料儲存器持有的資料庫表,其中該持久管理器實施基於該至少一準則之評估來判定是否資料更 新、附加及刪除需要儲存至該非揮發資料儲存器的功能。
- 一種管理一資料處理裝置中資料之持久的方法,包含下列步驟:評估一組準則之至少一準則,該組準則代表儲存的成本及關於不儲存資料至持久儲存器的風險,以判定是否儲存一資料更新至持久儲存器;以及回應該資料更新應儲存至該持久儲存器之一判定,而啟動儲存資料更新至持久儲存器。
- 如請求項19所述之方法,供用於一傳訊系統,其中該評估至少一準則之步驟包含評估損失關於一訊息之資料的一風險,以及基於該訊息之一價值評估該損失的一潛在成本。
- 如請求項20所述之方法,其中該訊息之該價值係決定自該訊息內容中的一金融(monetary)價值。
- 如請求項20所述之方法,其中該訊息之該價值係推斷自一訊息佇列之屬性,其中該訊息傳送至該訊息佇列。
- 如請求項20所述之方法,其中該訊息之該價值為透過一傳訊API所指定的該訊息之一屬性。
- 如請求項19所述之方法,供用於一傳訊系統,其中該評估至少一準則之步驟包含判定持久訊息之一佇列之現在的大小。
- 如請求項19所述之方法,供用於一傳訊系統,其中該評估之步驟係執行以回應關於一訊息之一操作的效能,以判定是否與該已執行之操作有關的資料需要儲存至持久儲存器。
- 如請求項19所述之方法,供用於一傳訊系統,其中該評估之步驟包含將一訊息已進入該傳訊系統之佇列中的時間與一臨界值時間比較。
- 如請求項19所述之方法,供用於一傳訊系統,其中該評估之步驟係執行以回應一訊息屬性之識別,該訊息屬性指示該訊息為儲存至持久儲存器的一候選。
- 如請求項19所述之方法,其中該評估之步驟係由一持久管理器執行,該持久管理器包含:一資料收集元件;以及一評估元件,供施加所儲存的一組規則至該資料收集元件所收集的資料,以判定是否儲存一資料更新至持久儲存器。
- 一種電腦程式,包含一組實施於程式碼的指令,供控制一資料處理裝置之效能,其中該電腦程式在該資料處理裝置上執行,以進行包含以下步驟的一方法:評估一組準則之至少一準則,該組準則代表儲存的成本及關於不儲存資料至持久儲存器的風險,以判定是否儲存一資料更新至持久儲存器;以及 回應該資料更新應儲存至該持久儲存器之一判定,而啟動儲存資料更新至持久儲存器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0613192.4A GB0613192D0 (en) | 2006-07-01 | 2006-07-01 | Methods, apparatus and computer programs for managing persistence |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200823760A TW200823760A (en) | 2008-06-01 |
TWI430176B true TWI430176B (zh) | 2014-03-11 |
Family
ID=36888544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096123711A TWI430176B (zh) | 2006-07-01 | 2007-06-29 | 管理持久的方法、裝置及電腦程式 |
Country Status (8)
Country | Link |
---|---|
US (3) | US9495229B2 (zh) |
EP (1) | EP2038746B1 (zh) |
JP (1) | JP5084827B2 (zh) |
KR (1) | KR101054994B1 (zh) |
CN (1) | CN101490651B (zh) |
GB (1) | GB0613192D0 (zh) |
TW (1) | TWI430176B (zh) |
WO (1) | WO2008003617A1 (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
JP2010512584A (ja) | 2006-12-06 | 2010-04-22 | フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) | 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法 |
US8055782B2 (en) * | 2008-10-13 | 2011-11-08 | International Business Machines Corporation | System and method for generating exception delay messages when messages are delayed |
US8239641B2 (en) * | 2009-02-24 | 2012-08-07 | Microsoft Corporation | Choosing location or manner of storing data |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
EP2672604A4 (en) * | 2011-01-31 | 2017-01-04 | Nec Corporation | Electrical power management system and electrical power management method |
US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
GB201216436D0 (en) | 2012-09-14 | 2012-10-31 | Ibm | Controlling persisting of data to disk |
US9258263B2 (en) * | 2012-11-29 | 2016-02-09 | International Business Machines Corporation | Dynamic granular messaging persistence |
CN103257987A (zh) * | 2012-12-30 | 2013-08-21 | 北京讯鸟软件有限公司 | 基于规则的分布式日志服务实现方法 |
US9348773B2 (en) | 2013-05-28 | 2016-05-24 | Dell Products, L.P. | Systems and methods for adaptive interrupt coalescing in a converged network |
JP6292810B2 (ja) | 2013-10-02 | 2018-03-14 | キヤノン株式会社 | データ同期方法、データ同期装置およびプログラム |
US9853714B2 (en) | 2013-10-11 | 2017-12-26 | Ge Aviation Systems Llc | Data communications network for an aircraft |
US9749256B2 (en) * | 2013-10-11 | 2017-08-29 | Ge Aviation Systems Llc | Data communications network for an aircraft |
US9894143B1 (en) * | 2013-11-06 | 2018-02-13 | Amazon Technologies, Inc. | Pre-processing and processing pipeline for queue client |
GB2520972A (en) | 2013-12-05 | 2015-06-10 | Ibm | Workload management |
US9635109B2 (en) * | 2014-01-02 | 2017-04-25 | International Business Machines Corporation | Enhancing reliability of a storage system by strategic replica placement and migration |
WO2015130314A1 (en) | 2014-02-28 | 2015-09-03 | Hewlett-Packard Development Company, L.P. | Mapping mode shift |
US9577972B1 (en) * | 2014-09-09 | 2017-02-21 | Amazon Technologies, Inc. | Message inspection in a distributed strict queue |
JP6602866B2 (ja) * | 2014-12-01 | 2019-11-06 | インフォマティカ エルエルシー | 並列持続性を有するメッセージブローカシステム |
US10824362B2 (en) | 2015-03-27 | 2020-11-03 | Hewlett Packard Enterprise Development Lp | File migration to persistent memory |
CN107209720B (zh) * | 2015-04-02 | 2020-10-13 | 慧与发展有限责任合伙企业 | 用于页面高速缓存的系统及方法以及存储介质 |
US9747174B2 (en) * | 2015-12-11 | 2017-08-29 | Microsoft Technology Licensing, Llc | Tail of logs in persistent main memory |
US10565187B2 (en) * | 2016-11-17 | 2020-02-18 | Sap Se | Management of transactions spanning different database types |
US10678812B2 (en) * | 2016-11-17 | 2020-06-09 | Sap Se | Asynchronous database transaction handling |
US10341463B2 (en) * | 2017-05-03 | 2019-07-02 | International Business Machines Corporation | System and method for message queue configuration in a network |
US10922287B2 (en) * | 2017-05-24 | 2021-02-16 | Cisco Technology, Inc. | Intelligent layout of composite data structures in tiered storage |
SG11202003045VA (en) * | 2017-10-31 | 2020-04-29 | Ab Initio Technology Llc | Managing a computing cluster based on consistency of state updates |
US10673791B2 (en) | 2017-12-29 | 2020-06-02 | Facebook, Inc. | Techniques for data reads from secondary stores |
US10645040B2 (en) * | 2017-12-29 | 2020-05-05 | Facebook, Inc. | Techniques for consistent writes in a split message store |
US11405343B2 (en) | 2017-12-29 | 2022-08-02 | Meta Platforms, Inc. | Techniques for extensible message indexing |
US10642877B2 (en) | 2017-12-29 | 2020-05-05 | Facebook, Inc. | Techniques for consistent reads in a split message store |
CN110430229B (zh) * | 2019-06-19 | 2020-09-11 | 特斯联(北京)科技有限公司 | 基于云平台的智慧社区物联传感信息采集处理系统及方法 |
CN111221663B (zh) * | 2019-11-21 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种消息数据处理方法、装置、设备及可读存储介质 |
US11537454B2 (en) | 2020-01-09 | 2022-12-27 | International Business Machines Corporation | Reducing write operations in middleware |
CN114072835B (zh) * | 2020-03-11 | 2024-03-08 | 格步计程车控股私人有限公司 | 费用预测方法及费用预测数据系统 |
US11983437B2 (en) * | 2020-05-26 | 2024-05-14 | Intel Corporation | System, apparatus and method for persistently handling memory requests in a system |
US11507314B2 (en) * | 2020-06-24 | 2022-11-22 | Samsung Electronics Co., Ltd. | Systems and methods for message queue storage |
KR102460910B1 (ko) * | 2020-11-20 | 2022-10-31 | 한국전자기술연구원 | 데이터 중복 방지를 위한 데이터 저장 방법 및 이를 적용한 데이터 플랫폼 |
CN116560586B (zh) * | 2023-07-06 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 属性值的确定方法及装置、存储介质及电子设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2276739A (en) * | 1993-03-30 | 1994-10-05 | Ibm | System for storing persistent and non-persistent queued data. |
US5721918A (en) * | 1996-02-06 | 1998-02-24 | Telefonaktiebolaget Lm Ericsson | Method and system for fast recovery of a primary store database using selective recovery by data type |
US6442139B1 (en) * | 1998-01-29 | 2002-08-27 | At&T | Adaptive rate control based on estimation of message queuing delay |
WO2001017169A2 (en) | 1999-08-31 | 2001-03-08 | Accenture Llp | A system, method and article of manufacture for a network-based predictive fault management system |
US6883101B1 (en) | 2000-02-08 | 2005-04-19 | Harris Corporation | System and method for assessing the security posture of a network using goal oriented fuzzy logic decision rules |
US7352868B2 (en) | 2001-10-09 | 2008-04-01 | Philip Hawkes | Method and apparatus for security in a data processing system |
TW200303690A (en) | 2002-02-18 | 2003-09-01 | Empower Interactive Group Ltd | Distributed message transmission system and method |
US7185033B2 (en) * | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory |
GB0308262D0 (en) * | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
US7644118B2 (en) * | 2003-09-11 | 2010-01-05 | International Business Machines Corporation | Methods, systems, and media to enhance persistence of a message |
TW200532488A (en) | 2004-03-23 | 2005-10-01 | Ind Tech Res Inst | System and method for risk assessment |
WO2005109212A2 (en) | 2004-04-30 | 2005-11-17 | Commvault Systems, Inc. | Hierarchical systems providing unified of storage information |
-
2006
- 2006-07-01 GB GBGB0613192.4A patent/GB0613192D0/en not_active Ceased
-
2007
- 2007-06-26 WO PCT/EP2007/056373 patent/WO2008003617A1/en active Application Filing
- 2007-06-26 KR KR1020097000984A patent/KR101054994B1/ko not_active IP Right Cessation
- 2007-06-26 EP EP07786848.7A patent/EP2038746B1/en active Active
- 2007-06-26 JP JP2009517172A patent/JP5084827B2/ja active Active
- 2007-06-26 CN CN2007800252763A patent/CN101490651B/zh active Active
- 2007-06-26 US US12/307,255 patent/US9495229B2/en not_active Expired - Fee Related
- 2007-06-29 TW TW096123711A patent/TWI430176B/zh not_active IP Right Cessation
-
2016
- 2016-08-17 US US15/238,815 patent/US10528405B2/en not_active Expired - Fee Related
-
2019
- 2019-11-20 US US16/689,082 patent/US20200133750A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US9495229B2 (en) | 2016-11-15 |
US20100017441A1 (en) | 2010-01-21 |
US20160357619A1 (en) | 2016-12-08 |
EP2038746B1 (en) | 2014-07-23 |
JP5084827B2 (ja) | 2012-11-28 |
GB0613192D0 (en) | 2006-08-09 |
US10528405B2 (en) | 2020-01-07 |
KR101054994B1 (ko) | 2011-08-05 |
KR20090035527A (ko) | 2009-04-09 |
JP2009541882A (ja) | 2009-11-26 |
CN101490651A (zh) | 2009-07-22 |
CN101490651B (zh) | 2013-12-18 |
EP2038746A1 (en) | 2009-03-25 |
TW200823760A (en) | 2008-06-01 |
US20200133750A1 (en) | 2020-04-30 |
WO2008003617A1 (en) | 2008-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI430176B (zh) | 管理持久的方法、裝置及電腦程式 | |
CN101636742B (zh) | 对有时间限制的消息进行有效处理的方法和设备 | |
US8250132B2 (en) | Managing messages related to workflows | |
KR100914895B1 (ko) | 데이터의 유틸리티를 기반으로 하여 데이터 저장소로부터 데이터를 선택하는 시스템 | |
CN100375088C (zh) | 利用事务语义法分段和处理连续数据流 | |
US10572319B2 (en) | Optimization of message oriented middleware monitoring in heterogenenous computing environments | |
US8370847B2 (en) | Managing persistence in a messaging system | |
CN101002190A (zh) | 利用电子邮件中的元数据来管理虚拟存储器的电子邮件传输系统 | |
WO2005081942A2 (en) | Hierarchical storage management | |
EP1593065B1 (en) | Methods,mobile devices and computer-readable mediums for managing data | |
US7454478B1 (en) | Business message tracking system using message queues and tracking queue for tracking transaction messages communicated between computers | |
KR20090003405A (ko) | 파일 업로드 시스템 및 방법 | |
GB2391419A (en) | Restricting the propagation of a virus within a network | |
US11243979B1 (en) | Asynchronous propagation of database events | |
US20030105780A1 (en) | File system, control method, and program | |
US20220303360A1 (en) | Reduction of data transmissions based on end-user context | |
WO2022206054A1 (zh) | 一种物料增量处理方法、装置、电子设备和计算机存储介质 | |
Hassannezhad Najjari et al. | A systematic overview of live virtual machine migration methods | |
CN109416663A (zh) | 用于最小化存储系统和其设备内的ssd中的碎片化的方法 | |
JP4109624B2 (ja) | 処理スケジュールの管理方法、サーバ、処理スケジュールの管理プログラム | |
CN115242781A (zh) | 一种文件合并存储方法和装置 | |
JP2023160615A (ja) | チャネル制御装置、チャネル制御方法、及びチャネル制御システム | |
CN109656900A (zh) | 对终端发送的数据及时处理的服务器 | |
CN115766731A (zh) | 一种基于Istio实现Kubernetes负载均衡的方法 | |
KR20120121207A (ko) | 데이터 로깅 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |