TWI416901B - 故障容忍之異動處理系統 - Google Patents

故障容忍之異動處理系統 Download PDF

Info

Publication number
TWI416901B
TWI416901B TW095141346A TW95141346A TWI416901B TW I416901 B TWI416901 B TW I416901B TW 095141346 A TW095141346 A TW 095141346A TW 95141346 A TW95141346 A TW 95141346A TW I416901 B TWI416901 B TW I416901B
Authority
TW
Taiwan
Prior art keywords
transaction
server
commitment
processing
request
Prior art date
Application number
TW095141346A
Other languages
English (en)
Other versions
TW200740147A (en
Inventor
Gaku Yamamoto
Hideki Tai
Hiroshi Horii
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200740147A publication Critical patent/TW200740147A/zh
Application granted granted Critical
Publication of TWI416901B publication Critical patent/TWI416901B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

故障容忍之異動處理系統
本發明係關於一種故障容忍之異動處理系統。更準確地說,本發明係關於一種異動處理方法、處理系統及用於構造故障容忍之異動系統之控制程式。
現代商業應用系統具有一問題,其在於異動程序歸因於伺服器或其類似物中之系統故障而暫時停止。因此,例如,專利文獻1揭示一種用於在伺服器群(伺服器組之集合)中診斷並自修復伺服器故障之方法及系統。
[專利文獻1]公開未審查專利申請案第2004-110790號
自系統使用者之觀點,只要異動程序在接近正常情況(在許多系統中為兩或三秒)之時間週期內完成,即使系統故障發生,仍不要緊。在常見系統中,很難將停機時間限制在上述時間週期內。
現代商業應用系統之故障容忍機制基於故障偵測及接管處理。亦即,採取了用於回應於故障偵測而瞬間切換之方法。然而,故障偵測通常要求十秒至若干分鐘。此係因為故障偵測係藉由確定外部電腦與目標伺服器之間經由通信的訊息交換是否擁塞來執行的。
即使目標伺服器正常操作,然而,負載會暫時地變高且訊息交換可能擁塞。因此,若在特定時間週期中若干次嘗試訊息交換,但是不能正常執行訊息交換,則確定目標伺服器中發生故障。若將回覆等待時間或嘗試次數設定得太小,則故障偵測機制會確定故障發生而不考慮到目標伺服器之正常操作,且起始後備伺服器處之接管處理。結果,保留至少約十秒以用於檢查目標伺服器是否有效的。
因此,不能在太短以致使用者不能辨識系統故障之時間週期中執行故障偵測及接管處理。此對故障偵測係必要的。為了縮短用於檢查目標伺服器是否有效之時間週期,需準備專用於檢查其是否有效之訊息處理之網路,且需進一步在目標伺服器處準備專用於檢查其是否有效之處理器,且需要用於檢查作業系統及其上之程序是否正常操作之機制。
此要求改變硬體及作業系統,但是當前開放平臺環境不能滿足要求。
[本發明將解決之問題]
因此,本發明經調適以解決上述問題,且用以提供一種新的異動處理方法以使得在特定時間週期中未接收到回覆時能夠重發一程序至後備系統而無需等待系統之故障偵測。
在本發明中,主要假設以下條件。
存在包含一資料管理機制及用於更新該機制中之資料之一或多個伺服器之(2F+1)集合(下文中,該集合稱作伺服器群)("F"為自然數)。存在一用於發出異動請求至伺服器群集合之用戶端。各別伺服器群之間及在一用戶端與伺服器群之每一者之間經由一具有複數個資料發送通道(其為冗餘(經多工)的)之網路而連接。相同異動請求可自單一用戶端多次輸入。若用戶端在特定時間週期中不能自伺服器群接收一回覆,則其發送相同異動請求至另一伺服器群。網路及伺服器群可在任何時候遭遇失靈,但是僅有F個集合之伺服器群遭遇故障所引起之失靈。
圖1展示本發明所假設之系統之基本形式(對應於F=1之情況)。
如所展示,伺服器群1-3之每一者均具有複數個應用伺服器(1c-3c),同時每一伺服器群中存在資料庫(DB1a、2a、3a)及用於管理DB(1b、2b、3b)之每一者的DB伺服器。請求異動之用戶端4、5經由每一伺服器群中之應用伺服器及DB伺服器存取異動所需之資料庫。
圖2展示本發明所假設之最小組態。圖式中之仲裁器8為伺服器群之特殊形式,且為僅用於正常操作其他伺服器群的伺服器群,其既不執行異動程序又不具有DB。舉例而言,即使F=1,本發明仍具有許多需要三個伺服器群而不需要產生三重DBMS(資料庫管理系統)的情況。由於本發明具有基於多數規則之分散式協議協定,因此其需要伺服器在雙重冗餘情況中亦執行多數規則之表決。此由仲裁器8來進行。
雖然下文將以(2F+1)個集合(奇數集合)為基礎來描述伺服器群,但是藉由以與上述相同之組態包括仲裁器8,其可應用於具有伺服器群之2F個集合(偶數集合)之系統。
本發明之問題是在此等條件下確保以下三點。
<問題1>即使複數次冗餘執行相同異動,僅一次執行成功地獲得一承諾(完成一承諾)。
<問題2)基於最新資料來執行完成承諾之異動。
<問題3)若伺服器群歸因於故障而停止,則異動程序可在停止不長時間後繼續。
為了解決該等問題,本發明之第一實施例提供以下處理方法。
(1)在異動起始程序中用於處理以下步驟之方法。
步驟1:在異動起始程序中,參考目標異動之ID,且檢查具有相同ID之異動是否正被執行或完成一承諾,且若其正被執行或完成一承諾,則將目標異動回復(取消)。
步驟2:進一步,在異動起始程序中,檢查自伺服器群是否保存有效週期已過期之處理權限符記(限時符記):且若其未保存符記,則藉由使用"使用2F+1個伺服器組中之處理權限符記之互斥控制技術"執行對處理權限符記之獲取程序且等待獲取之完成。
步驟3:進一步,若執行處理權限符記之獲取程序,則自伺服器群藉由與程序同時或緊跟其後使用"用於實現2F+1個伺服器組中之資料一致性的技術"在系統中之所有伺服器群中保存最新資料。
此處,"使用2F+1個伺服器組中之處理權限符記之互斥控制技術"及"用於實現2F+1個伺服器組中之資料一致性的技術"使用了隨後將描述之公共已知技術。
除了程序(1)之外,用於進一步處理步驟(2)之方法。
(2)在異動之承諾程序中執行以下處理流程。
步驟1:在承諾程序中,將目標異動之異動ID、由異動更新之資料及待傳回至請求異動之用戶端的處理結果傳送至所有伺服器群,且藉由使用"在2F+1個伺服器組中之更新資料的複製技術"來檢查發送到至少F+1個伺服器之複本。
步驟2:進一步,若步驟1成功,則將承諾請求訊息發送至所有其他伺服器,且若自至少F+1個伺服器接收到一承諾協議,則其藉由使用"用於基於2F+1個伺服器組中之分散式協議來確定承諾是否可用的技術"來使承諾成功。
步驟3:進一步,通知所有伺服器群已建立一承諾。
此處,"在2F+1個伺服器組中之更新資料之複製技術"及"用於基於2F+1個伺服器組中之分散式協議來確定承諾是否可用的技術"使用隨後待描述之公共已知技術。
(1)及(2)指示本發明之主要程序且進一步包括作為額外程序的以下方法。
(3)一程序,其中若當處理權限符記獲取程序正經處理時接收到承諾請求訊息,則不回覆承諾請求訊息直至處理權限符記獲取程序完成或回覆一請求以重發一承諾請求訊息。
(4)一程序,其中若在當承諾請求訊息被發送至另一伺服器群時與回應於回覆建立承諾時之間接收到處理權限符記獲取訊息,則不回覆一處理權限符記獲取訊息直至建立一承諾或傳回一請求以重發處理權限符記獲取訊息。
(5)一程序,其中自其他伺服器接收未解決異動之日誌且在處理權限符記獲取完成之前使異動日誌之狀態同步。
(6)一程序,其中若具有未知承諾之異動資訊被包括於一處理權限符記獲取訊息之接收程序中及回覆訊息之接收程序中的訊息中,則參考該資訊:及若已建立異動之承諾或回復,則傳回結果,且若其未建立,則藉由方法(2)來建立一承諾。
(7)一承諾請求核準程序,其確定有效處理權限符記是否保存於發送訊息之伺服器群之外的伺服器群中,作為異動之承諾請求訊息的接收程序:及若其經保存,則傳回對承諾請求之拒絕:且若其未經保存,則傳回核準。
(8)一重發/符記有效週期設定程序,其用於計算發送異動處理請求之用戶端之異動的重發間隔及藉由"使用2F+1個伺服器組中之處理權限符記之互斥控制技術"自異動程序之回應時間之估計值所設定之符記有效週期,且在用戶端側設定其。
雖然已將本發明之解決方法之實施例描述為異動處理方法,但是其可藉由作為其他實施例的具有相同功能之處理裝置、處理機制(處理系統)及用於控制其之電腦系統而實現。
[本發明之優點]
本發明提議一種系統,其用於在特定時間週期中未接收到回覆的情況下自用戶端重發一程序至後備伺服器群而無需等待故障偵測。亦即,本發明之異動程序具有:一異動起始程序,其中組合了使用處理權限符記之互斥控制與資料一致性:及一承諾程序,其中組合了基於分散式協議來確定承諾是否可用與更新資料之複製。在該等程序中,可使歸因於應用伺服器、DBMS(資料庫管理系統)及網路發生故障之服務停止時間比習知技術中之服務停止時間更短,且可構造一可繼續服務而不使用戶端辨識到故障之發生的系統。
[較佳實施例]
本發明提供一種異動程序,其同時解決上述三個問題,確保一定在單一伺服器群處執行異動承諾,且進一步確保總對最新資料執行成功獲得一承諾之異動。以下將描述本發明之基本原理。
<用於解決問題1之技術>
為了防止在複數個伺服器群中冗餘地處理異動,使用以下1-3中所列出之文獻中所提議的基於互斥技術之"處理權限符記"。
1)Suzuki,I、Kasami,T,分散式互斥演算法(A distributed mutual exclusion algorithm),ACM Transactions on Computer Systems(TOCS),1985年11月,第3卷,第4期,第344-349頁。
2)Nishio,S.、Li,K.F.、Manning,E.G.,用於電腦網路之彈性互斥演算法(A resilient mutual exclusion algorithm for computer networks),IEEE Transactions on parallel and Distributed Systems,1990年7月,第1卷,第3期,第344-355頁。
3)Banerjee,S.、Chrysanthis,P.K.在1996年第16屆關於分散式電腦系統之國際會議之學報(Proceedings of the 16th International Conference on Computing Systems,1996.)上之新的符記傳遞分散式互斥演算法(A new Token passing distributed mutual exclusion algorithm),1996年5月第717-724頁。
互斥技術為一般性技術,藉由該技術,僅允許複數個伺服器組(伺服器群)中之一個伺服器保存符記。本發明藉由使用該技術使在特定時間2F+1個伺服器群中僅存在一個具有有效處理權限符記之伺服器群。若伺服器群在處理伺服器群之承諾時具有一有效處理權限符記,則伺服器群再次嘗試獲取處理權限符記;且若伺服器群未獲取該有效處理權限符記,則其將該異動回復。對處理權限符記設定一過期時間。當過期時間過期時,處理權限符記變得無效,從而允許其他伺服器群重新獲取處理權限符記。在典型實例中,將處理權限符記之有效週期設定為約一秒以縮短歸因於故障之系統停機時間。然而,可延長處理權限符記之有效週期。
<用於解決問題2之技術>
本發明使用資料複製技術以用於將資料複製至2F+1個伺服器組中之F個或更多伺服器(由於自伺服器群亦具有資料,所以所有伺服器群中的大多數(亦即F+1個或更多個)伺服器群具有資料)以及使用資料一致性技術以用於將2F+1個伺服器組中之F+1個或更多伺服器組中所包括之資料作為2F+1個伺服器組中之經協議資料對待。該等技術為熟知的一般性技術(文獻4、5)。
4)J.Gray與A.Reuter之Transaction Processing Concepts and Techniques,Mogan Kaufmann 5)M.Wiesmann、F.Pedone;A.Schiper、B.Kemme與G.Alonso在2000年4月在第20屆關於分散式計算系統之國際會議之學報(Proceedings of 20th International Conference on Distributed Computing Systems)[ICDCS'2000]上的"Understanding replication in databases and distributed systems",第264-274頁。
<用於解決問題3之技術>
在異動之承諾程序中,二階段承諾協定為熟知的,其亦已知為阻塞協定。阻塞協定使得當執行異動之承諾程序之協調者歸因於故障而停止時,異動之承諾變得不能建立,且直至獲取協調者之決定結果才能建立異動之承諾程序。因此,該協定不能解決問題3。J.Gray與其他人提議Paxos承諾協定(文獻7),其中將L.Lamport與其他人所提議之用於在2F+1個伺服器組中達成協議的Paxos一致協定(文獻6)應用於承諾程序作為解決問題之技術。該協定使得只要在2F+1個伺服器組中F+1個或更多伺服器正常操作,承諾程序便可達成而不被阻塞。本發明使用Paxos承諾作為用於解決問題3之承諾程序技術。
6)L.Lamport之Generalized Consensus and Paxos,Microsoft Research Technical Report MSR-TR-2005-33 7)J.Gray與L.Lamport,Consensus on Transaction Commit,MSR-TR-2003-96
<用於所有問題1-3之解決方法>
問題1、2及3分別具有解決其之技術。然而,在本發明中,需同時解決全部三個問題。若單獨使用問題1至3之解決方法的每一者,則不能同時解決所有問題1至3。舉例而言,用於解決問題1之互斥可防止對相同異動之冗餘處理但是不能確保對2F+1個伺服器組中之最新資料集執行異動程序(對其執行一承諾)。用於解決問題2之資料複製技術及資料一致性技術不能防止冗餘處理相同異動。用於解決問題3之Paxos承諾既不能解決對相同異動之冗餘處理又不能確保對2F+1個伺服器組中之最新資料集執行一承諾程序。因此,用於解決各個問題1至3之技術需適當合並且演算法需重新構造以便同時解決所有問題1至3。
在本發明之異動處理機制中,當異動起始時,對處理權限符記執行一檢查程序以防止對異動之冗餘處理。若包括處理權限符記,則異動之起始程序完成。不具有處理權限符記之伺服器群執行處理權限符記獲取程序及資料一致性程序兩者。
藉由互斥中所展示之方法來執行處理權限符記獲取程序。若該程序失敗(若處理權限符記被另一伺服器群獲取),則其使異動之起始程序失敗。在互斥中,若可自F+1個伺服器群獲取對於一處理權限符記獲取請求之協議,則可獲取符記。
因此,在2F+1個伺服器群處可獲取處理權限符記之伺服器群之數目僅為一。當僅F個伺服器群(例如,伺服器群中之DB伺服器)停止時,可執行對處理權限符記之獲取。通常由一應用程式提供處理權限符記:但是嚴格地說,處理權限符記被提供給由特定異動集合所存取之資料集合,其中除了該異動集合之外之異動不存取該資料集合且該異動集合中之任何異動皆不存取除了該資料集合之外之資料。
接著,一用於驗證獲取處理權限符記之伺服器群是否具有最新資料以在獲取處理權限符記時使異動對最新資料執行之程序:且若伺服器群不具有最新資料,則執行獲取指示與另一伺服器群之資料差異的異動日誌之程序。在本發明中,若異動日誌可複製至F+1個伺服器群,則可成功獲得一承諾。因此,在2F+1個伺服器群中之F+1個伺服器群中所包括的異動日誌集合中,存在最新異動日誌。此處,藉由將LSN(日誌序號)之序號提供至異動日誌,獲取處理權限符記之伺服器群中未包括之異動日誌可為已知的,且可自伺服器群組搜索並獲取。
在異動之承諾程序中,執行資料複製程序及承諾建立程序。
首先,在資料複製程序中,複製異動日誌以使得F+1個或更多伺服器群具有異動日誌。將異動日誌傳送至所有有效(alive)伺服器群,且等待將自F個伺服器群接收之確認訊息。
接著,藉由Paxos承諾而執行承諾之建立程序。執行承諾程序之伺服器群發送一"準備"訊息至所有其他有效伺服器群。
當接收訊息之每一伺服器群判斷除了發送伺服器群之外的伺服器群具有處理權限符記時,伺服器藉由使其"異常終止"及否則藉由使其"準備好"而將決定結果發送至所有稱作其自身接收器之模組。此處,接收器為一伺服器,其僅具有伺服器群之承諾的決定結果,且為伺服器群準備2F+1個接收器。接收伺服器群之決定結果之接收器發送結果至正執行一承諾程序之伺服器群。當伺服器群自伺服器群之接收器中之F+1個或更多接收器接收該決定結果時,該伺服器群將其作為伺服器群之決定結果來對待。
圖3展示本發明之F=1情況下Paxos承諾之組態實例。在圖3中,省略自接收器至承諾程序執行模組的箭頭。
此處,伺服器群中每一模組(31a、31b、32a、33b)及接收器(31c、31d、31e、32c、32d、32e、33c、33d、33e)可置放於相同伺服器裝置中或可置放於不同伺服器裝置中。
此處,雖然已分別描述處理權限符記獲取、資料一致性之引入、資料複製、承諾建立,但是由於訊息交換實際由每一程序來執行,所以訊息數目可增加且效能可減少。考慮到在異動起始程序中執行處理權限符記獲取及資料一致性,在一承諾程序中執行資料複製及承諾建立,且所有程序皆基於用於自2F+1個伺服器群中之F+1個伺服器群獲取協議之分散式協議協定,所以用於異動起始程序之處理權限符記獲取程序及資料一致性之輸出訊息及輸入訊息可合併於單一訊息中,且用於承諾程序之資料複製及承諾建立之輸出訊息及輸入訊息可合併為單一訊息,以便可防止效能隨著訊息數目增加而減少。通常執行此等訊息之合併。
不能作用成問題1至3之技術的一系列程序僅被合併。當伺服器群起始一異動且在其執行承諾程序之前處理權限符記之過期時間過期時,會發生問題。在此情況下,另一伺服器群可獲取處理權限符記。
假設伺服器群1具有處理權限符記且起始異動A之承諾程序,但是在異動A之承諾程序完成之前,處理權限符記之過期時間過期。在此情況下,另一伺服器群2可獲取處理權限符記、執行新異動B且起始一承諾程序。此處,若異動A及B成功獲得一承諾,則資料一致性將不一致。
由於未為異動A所更新之資料建立一承諾,所以其不被反映至伺服器群2。因此,在對資料集合執行異動A之前,對資料集合執行異動B。此處,若異動B承諾且異動A之承諾在其之後立即完成,則異動B之結果可丟失。為了防止此發生,當伺服器群2獲取處理權限符記時,要求建立在伺服器群1中正被處理之異動或回復伺服器群1中正被處理之異動。
在本發明中,為了確保此等,合併用於各個問題1-3之解決技術。
在本發明中,為用戶端設定超時持續時間以等待來自伺服器之回覆結果及設定處理權限符記之過期時間係重要的。若用戶端重發異動處理請求至後備伺服器群時,主要伺服器群之處理權限符記之過期時間已過期,則其比另外之情況更有效,因為對後備處理權限符記之獲取是立即執行的。相反地,若處理權限符記之過期時間長於直至用戶端重發之超時持續時間,則在後備伺服器群處對處理權限符記之獲取未成功,因此,用戶端重發請求至下一後備伺服器群。在此情況下,在處理權限符記之過期時間過期時,複數個伺服器群彼此競爭地同時嘗試獲取處理權限符記,以致任何伺服器群皆不可獲取處理權限符記。需藉由考慮此一情況且進一步考慮異動之平均處理時間及最大等待時間來決定直至用戶端重發之超時持續時間及處理權限符記之過期時間。
<系統組態及提議機制之位置>
圖4展示本發明所提議之整個系統及機制之實例。此處,展示提議機制46b位於伺服器群40中之DB伺服器42中之情況。提議機制46b之位置不限於此一位置。
本發明之異動處理機制包含應用伺服器41中之一異動前端機制45(下文描述為異動Fr機制)及DB伺服器42中之異動後端機制46(下文描述為異動Bk機制)。
異動Fr機制累積每一異動之由商業應用邏輯所產生之異動日誌,且在異動Fr機制之承諾程序中,將所累積之異動日誌傳送至異動Bk機制。此處,呼叫本發明之提議機制46b且確定為承諾成功還是承諾失敗。接著,若為承諾成功,則異動Bk機制藉由使用異動日誌經由DBMS 47更新DB 43。接著,其將承諾結果傳回異動Fr機制且該應用之承諾程序結束。此處,該承諾不必是異動Fr機制與異動Bk機制之間的二階段承諾。
若當DB 43在異動Bk機制中之提議機制46b決定承諾成功之後被更新時DB伺服器42中發生故障且更新失敗,則伺服器群變成當機且應用之承諾程序處於未完成狀態(承諾成功還是失敗係未知的),但是異動日誌藉由提議機制46b傳送至另一伺服器群且更新至該伺服器群處之DB 43。因此,用戶端僅需重發異動處理請求。此處,若異動日誌保存資料更新歷史及待傳回用戶端之異動處理結果,且用戶端重發異動處理請求且異動成功獲得一承諾,則需用於自對應之異動日誌獲取處理結果且重發該結果之程序。
包括異動日誌中之異動之處理結果的機制及用於自異動日誌擷取異動處理結果且在自用戶端重發異動處理請求時重發該結果之機制並非本發明之主題,因此,將省略對其之描述。
以下將研究本發明之替代性方法。
<依據故障偵測之方法>
當前主流方法係執行故障偵測及接管處理之方法。如以上所提及,該方法在故障偵測中要求至少十秒,因此,其不可使用戶端無法察覺故障。
<依據多處理之方法>
此係使複數個伺服器執行相同程序、依據多數規則比較結果且使具有大多數投票之結果為整個結果之方法。其用於一要求高可靠性之系統(諸如飛機)中。然而,若將該方法引入異動處理系統中,如以下展示,在效能上會產生大問題。
在該方法中,若彼此依賴之複數個異動處理請求幾乎同時到達;則由所有資料管理機制所擁有之資料係不同的,除非在所有伺服器中以相同次序處理請求。舉例而言,假設存在兩個異動處理請求A及B。將A及B程序分別假設為"若資料X為0,則使X為1且若資料X不是0,則無事"及"若資料X為1,則使X為10,且若資料X不是1,則無事"。此處,假設一情況,其中在伺服器群1處,以A及B之次序來執行程序,且在伺服器群2處,以B及A之次序來執行程序。首先,假設資料X在兩個伺服器群處均為0。在伺服器群1處,由於以A及B之次序來執行程序,所以X值變成10;但是在伺服器群2處,以B及A之次序來執行程序,所以X值變成1。將不同結果保存於各別伺服器群中係不能接受的。
實際上,彼此依賴之異動或彼此不相關之異動被混合,且在其中異動處理請求到達之階段處,該異動所依賴之異動為未知的。因此,在所有伺服器處需以相同次序來處理所有異動處理請求。為了如此執行,所有伺服器彼此同步且每次異動處理請求到達時,檢查伺服器之執行次序。另外,由於需在每一伺服器處以在所有伺服器處同步之次序來處理異動,所以按該次序逐個處理所有異動程序。其顯著減少了異動程序之處理量。
圖5展示了作為本發明之實施例的異動處理系統(處理機制)之概要。
異動處理系統50為主要跨越伺服器群中之DB伺服器與應用伺服器之處理機制。如圖式所展示,在功能上將異動處理系統50劃分成異動起始處理機制51、異動承諾處理機制52及有效週期設定機制53。有效週期設定機制53包括用於使用戶端或應用伺服器執行設定之機制。
首先,異動起始處理機制51包括一控制單元51a、一異動冗餘偵測單元51b、一符記互斥控制單元51c及一資料一致性處理單元51d。
在異動起始程序中,異動冗餘偵測單元51b參考目標異動之ID,檢查具有相同ID之異動是正被執行還是已完成一承諾:及若該異動正被執行或已完成一承諾,則其針對該異動起始程序傳回回復。
在異動起始程序中,符記互斥控制單元51c檢查自伺服器群是否保存有效週期未過期之處理權限符記(限時符記),且若伺服器未保存該符記,則其對處理權限符記執行互斥控制以使得執行處理權限符記之獲取程序且等待直至該獲取程序完成。
當資料一致性處理單元51d執行對處理權限符記之上述獲取程序時,其控制自伺服器群之資料一致性以在該程序同時或緊跟其後保有系統中之所有伺服器群中之最新資料。
接著,異動承諾處理機制52包括一資料複製處理單元52b、一承諾建立處理單元52c及一承諾發送單元52d。
資料複製處理單元52b傳送目標異動之異動ID、異動所更新之資料及待發送至請求異動之用戶端的處理結果至所有伺服器群:執行一程序以檢查發送至至少F+1個伺服器的複本且管理至每一資料庫之複製程序。
若藉由資料複製處理單元52b進行的至資料庫之複製成功,則承諾建立處理單元52c發送一承諾請求訊息至所有其他伺服器,且當其自至少F+1個伺服器接收一承諾協議時,其控制該程序以使其承諾成功。
另外,承諾發送單元52d發送已建立至所有其他伺服器群之承諾。
另外,有效週期設定機制53包括一控制單元53a、一異動重發時間設定單元53b、一符記有效週期設定單元53c及一用戶端通信單元53d。異動重發時間設定單元53b為一用於使自DB伺服器看見之用戶端(一應用伺服器或用戶端終端機)設定異動之重發時間(最大等待時間)的機制。舉例而言,當系統經組態時,異動重發時間設定單元53b可經調適以發送一設定螢幕從而使每一用戶端裝置儲存一重發時間。
符記有效週期設定單元53c為一用於設定系統中每一伺服器群中所使用之處理權限符記之過期時間的機制。亦即,其提供了用於基於給定異動重發時間來設定符記之過期時間的方法(means)。舉例而言,其可經調適以使管理者在系統組態設定螢幕上輸入符記過期時間作為一參數,且檢查所輸入之參數是否適合於異動重發時間。隨後將描述設定時間之參數的實例。
上述處理機制僅為一實例且本發明不限於該組態。
圖6展示在圖5之異動冗餘偵測單元51b所決定之主要側處之伺服器群與後備側處之伺服器群之間的訊息交換。圖式展示以下每一處理單元,該等處理單元在主要伺服器群60a與後備伺服器群60b之間發送並接收訊息。
主要伺服器群60a具有:一符記請求發送單元61,其用於將一處理權限符記獲取請求訊息67a發送至一後備伺服器群60b:一符記回覆接收單元,其用於接收對符記獲取請求之一處理權限符記獲取請求回覆訊息67b:一承諾請求發送單元64,其用於發送一承諾請求訊息68a:及一承諾請求回覆接收單元65,其用於接收一承諾請求回覆訊息68b。
後備伺服器群60b具有:一符記請求處理單元63,其用於自主要伺服器群接收一符記請求訊息且發送對該請求之一回覆:及一承諾請求處理單元66,其用於接收一承諾請求訊息。
藉由隨後所描述之流程圖來闡釋上述訊息發送單元及訊息接收單元之每一者的細節。
根據如圖5中所展示之實施的觀點,本發明之實施例包含異動起始處理機制、承諾控制機制及重發符記有效週期設定機制(有效週期設定機制)三個部分。
[1.異動起始處理機制]
該機制之中心為處理權限符記之管理機制。
處理權限符記基本為一機制,該機制確保具有處理權限符記之伺服器群之數目在特定時間為一,且亦確保即使在伺服器群中發生故障,異動承諾結果仍被接管至剩餘伺服器群,而不漏失整個系統中異動承諾之結果。
伺服器群之每一者皆具有一單一執行中的處理權限符記管理機制。若該機制停止,則其可視作伺服器群之停止。將提供處理權限符記之單元提供至待由特定異動集合存取而不由除了該異動集合之外之異動存取之資料集合,且異動集合中之任何異動皆不存取除了資料集合之外的資料。通常,可考慮應用單元。
在本發明中,將基於多數規則之保存器決定方法用於處理權限符記管理上。其即使單一伺服器群歸因於故障而停止仍可分辨哪個伺服器群當前保存處理權限符記。
為處理權限符記提供有效週期。其使另一伺服器群能夠在一特定時間週期流逝之後獲取處理權限符記且執行異動程序,即使當前保存處理權限符記之伺服器群歸因於故障而停止。
將TSN(符記序號)提供至處理權限符記。
如以上所提及,將LSN(日誌序號)提供至異動日誌,以便保存先前處理權限符記之伺服器群可獲取當其上次獲取處理權限符記時所提交之異動日誌。其使經提交之異動日誌被接管而不丟失。
以下將展示獲取處理權限符記之程序。
<處理權限符記獲取請求訊息發送程序70>
圖6之符記請求發送單元61執行該程序。將參看圖7之流程圖詳細描述該程序。
1)若另一伺服器群正保存處理權限符記之記錄存在(步驟S71:是),則其等待直至處理權限符記之有效週期過期(步驟S72),2)記錄當前時間,及3)決定處理權限符記之有效週期(步驟S73)。
4)自當前記錄於自伺服器群中之最新處理權限符記提取TSN,藉由以下方法來決定TSN,且提供TSN作為新處理權限符記之TSN。
(A)若確定自伺服器群保存緊接在之前的處理權限符記,則處理權限符記之TSN變成新TSN(步驟S75)。
(B)否則,將緊接在之前的處理權限符記之TSN值加1作為新的處理權限符記之TSN(步驟S76)。
5)在異動日誌集合(在自伺服器群中為其建立承諾或回復,且其中異動日誌之LSN為連續的而無漏失)中,提供異動日誌之LSN中之最大值及處理權限符記之有效週期且將一處理權限符記獲取請求發送至除其自身之外的所有伺服器群(步驟S77)。
<對處理權限符記獲取請求訊息80之回覆訊息接收程序>
圖6之符記回覆接收單元62執行該程序。將參看圖8之流程圖詳細描述該程序。
1)若對所接收處理權限符記獲取請求之回覆訊息中之異動日誌之LSN大於異動日誌(其中異動日誌之LSN為連續的而在自伺服器群中無漏失)集合中的異動日誌之LSN的最大值(步驟S81:是),則自處理權限符記獲取請求之回覆訊息擷取差異之異動日誌且反映在資料中(步驟S82)。
2)若自一或多個伺服器群接收處理權限符記獲取權限(步驟S83:是),則認為處理權限符記獲取成功且將步驟S73處所記錄之添加了處理權限符記之有效週期之時間記錄為處理權限符記之過期時間(步驟S84)。另外,提取回覆訊息中之處理權限符記之TSN,且將該值及在步驟S75及S76處所加得之值中的較大值記錄為處理權限符記之TSN且程序結束(步驟S85)。
3)若自兩個伺服器群接收到處理權限符記獲取拒絕(步驟S86:是),則將處理權限符記獲取視作失敗且程序結束。
4)若已接收一重發請求且尚未獲取處理權限符記(步驟S87:否),則確定是否應重發其:且若應重發其(步驟S89:是),則等待一特定時間週期且自步驟S71執行(僅在接收一重發請求情況下到達該步驟)。
5)若即使在特定時間週期之後仍不能決定處理權限獲取是成功還是失敗(步驟S88:否),則將處理權限符記獲取視作失敗且確定其是否應被重發:且若應被重發(步驟S89:是),則在特定時間週期之後自步驟S71再次執行。
以下將展示處理權限符記獲取請求之接收程序的演算法。
<處理權限符記獲取請求訊息接收程序90>
圖6之符記請求處理單元63執行該程序。將參看圖9及圖10之流程圖來詳細描述該程序。
1)若自伺服器群正在處理處理權限符記獲取(步驟S91:是),則傳回重發請求且程序結束(步驟S92)。
2)將處理權限符記獲取請求之訊息中之異動日誌之LSN與LSN(其在自伺服器群所保存之異動日誌之LSN中為連續的且不漏失)之最大值相比較且執行以下程序。
(A)若自伺服器群中之異動日誌之LSN較大(步驟S93:是),則不包括於發送伺服器群中之異動日誌包括於回覆訊息中(步驟S94)。
(B)若自伺服器群具有一當前正處理一承諾之異動且異動日誌之LSN小於所接收異動日誌之LSN(步驟S95:是),則將異動視作一完成的承諾(步驟S96)。
3)若自伺服器群具有在過期時間內的處理權限符記(步驟97:是),則將處理權限符記獲取拒絕包括於回覆訊息中且將回覆訊息傳回且程序結束(步驟S98)。
4)若自伺服器群具有一指示除了發送伺服器群之外之伺服器群具有在過期時間內的處理權限符記的記錄(步驟S99:是),則將處理權限符記獲取拒絕包括於回覆訊息中且將回覆訊息傳回且該程序結束(步驟S100)。
5)若自伺服器群具有一正處理一承諾之異動(步驟S101:是),則將重發請求包括於一回覆訊息中且將回覆訊息傳回且該程序結束(步驟S102)。
6)將加上了提供給處理權限符記獲取請求之有效週期的當前時間記錄為處理權限符記之過期時間,且另外,藉由以下方法決定新的處理權限符記之TSN,且記錄該值(步驟S103)。
(A)若所接收處理權限符記獲取訊息中之TSN大於自伺服器群中所記錄之最新處理權限符記之TSN(步驟S104:是),則將所接收處理權限符記獲取訊息之TSN作為新的處理權限符記之TSN(步驟S105)。
(B)若所接收處理權限符記獲取訊息中之TSN及自伺服器群中所記錄之最新處理權限符記之TSN相同,且發送伺服器群與保存自伺服器群中所記錄之最新處理權限符記之伺服器群相同(步驟S107:是),則將自伺服器群中所記錄之最新處理權限符記之TSN值作為新的處理權限符記之TSN(步驟S108)。
(C)若上述兩者不適用,則將自伺服器群之處理權限符記之TSN值加1作為新的處理權限符記之TSN(步驟S109)。
7)將處理權限符記獲取核準及在步驟S103至S109處所決定之處理權限符記之TSN包括於回覆訊息中且將回覆訊息傳回且程序結束(步驟S110)。
由於處理權限符記具有一有效週期,所以即使該週期流逝且當前處理權限符記過期且保存該處理權限符記之伺服器群失靈,下一伺服器群仍可獲取處理權限符記。
此處重要的是,請求伺服器群使處理權限符記之過期時間為一在發送請求之前的時間加上處理權限符記之有效週期,且接收請求之伺服器群使處理權限符記之過期時間為接收請求之時間加上處理權限符記之有效週期。其確保當處理權限符記在接收側過期時當前處理權限符記之有效週期已過期。亦即,其他伺服器群可辨識處理權限符記之過期時間已過期而不檢查當前保存處理權限符記之伺服器群為有效的,且可授予獲取或請求獲取下一處理權限符記之權限。
[2.承諾控制機制]
在承諾程序中,將異動日誌發送至其他兩個伺服器群,且若自一或多個伺服器群接收到核準,則將其視作一承諾成功。當假設伺服器群為三個時,若發送異動日誌之伺服器群及另一伺服器群執行承諾核準,則獲取承諾核準之大多數,因此,來自一或多個伺服器群之承諾核準可作為整個系統核準該承諾。
以下將展示一承諾程序。此處,假設將在系統中唯一的異動ID提供至異動。雖然以下之演算法不包括至用戶端之傳回程序,但是異動之處理結果在承諾程序完成之後被傳回用戶端。此時,若起始承諾程序之異動回復但是具有相同異動ID之異動日誌存在,則自異動日誌獲取處理結果且將結果傳回用戶端。
<承諾請求訊息發送程序110>
圖6之承諾請求發送單元64執行該程序。將參看圖11之流程圖詳細描述該程序。
1)若對於自伺服器群中之相同異動而言承諾程序已完成(步驟S111:是),則傳回回復且該程序結束(步驟S112)。
2)若已自另一伺服器群接收異動日誌(已為其建立具有相同異動ID之承諾)(步驟S113:是),或對於相同異動在自伺服器群中已傳回承諾核準(步驟S114:是),則傳回回復且該程序結束(步驟S112)。
3)若未包括有效處理權限符記(步驟S115:否),則傳回回復且該程序結束(步驟S112)。
4)若不重發異動日誌(步驟S116:否),則將異動日誌包括於具有異動ID及異動日誌之LSN的發送訊息中(步驟S117)。
5)若處理權限符記之過期時間在特定時間週期內(步驟S118:是),則執行以下程序(步驟S119)。
(A)記錄當前時間,及(B)決定有效週期。
(C)在發送訊息中包括一處理權限符記接管請求,其包括有效週期及處理權限符記之TSN。
6)將發送訊息發送至另一伺服器群(步驟S119a)。
<對承諾請求120之回覆訊息接收程序>
藉由圖6之承諾請求回覆接收單元65執行該程序。將參看圖12之流程圖詳細描述該程序。
1)若經傳回訊息包括接管核準(步驟S121:是),則將在以上步驟S119處所記錄之時間加上處理權限符記之過期時間作為一過期時間且加以記錄(步驟S122)。
2)若自一或多個伺服器群接收到承諾核準之回覆(步驟S123:是),則將其視作一承諾成功,且記錄異動日誌及其LSN且程序結束(步驟S124)。
3)若自一或多個伺服器群接收到承諾拒絕之回覆(步驟S125:是),則將異動日誌之LSN記錄為回復且該程序結束(步驟S128)。
4)若即使在特定時間週期流逝之後仍不可自任何伺服器群接收回覆(步驟S126:否),則確定是否應重發請求,且若其應重發(步驟S127:是),則在特定時間週期流逝之後自步驟S111再次執行重發。否則,將異動日誌之LSN記錄為回復且該程序結束(步驟S128)。
以下將描述接收承諾程序請求之伺服器群中的程序。
<承諾請求訊息接收程序130>
圖6之承諾請求處理單元66執行該程序。將參看圖13之流程圖,詳細地描述該程序。
1)若已在自伺服器群處執行具有相同異動ID之異動的承諾程序(步驟S131:是),則傳回承諾拒絕且該程序結束(步驟S132)。
2)若已自另一伺服器群接收具有相同異動ID之異動日誌,且將承諾核準傳回至請求(步驟S133:是),則傳回承諾拒絕且該程序結束(步驟S132)。
3)若自伺服器群正執行處理權限符記獲取(步驟S134:是),則傳回重發之請求且該程序結束(步驟S135)。
4)若所接收訊息中之處理權限符記之TSN小於自伺服器群中所記錄之處理權限符記之TSN(步驟S136:是),則將在自伺服器群之記錄中之保存當前處理權限符記之伺服器群及其TSN包括於一回覆訊息中,傳回一承諾拒絕,且該程序結束(步驟S137)。
5)若已接收訊息中之處理權限符記之TSN大於自伺服器群中所記錄之當前處理權限符記之TSN(步驟S138:是),則將當前時間加上已接收訊息中之處理權限符記之有效週期作為過期時間,且將保存處理權限符記之伺服器群記錄為訊息之發送伺服器群(步驟S139)。
6)若另一伺服器群不保存處理權限符記(步驟S140:是),則執行以下程序。
(A)將當前時間加上提供給處理權限符記接管請求之有效週期記錄為處理權限符記之過期時間(步驟S141)。
(B)將接管核準包括於傳回訊息中(步驟S142)。
7)將已接收之異動ID及其異動日誌記錄為承諾核準且傳回該承諾核準(步驟S143、S144)。
[3.重發符記有效週期設定機制]
在本發明中,若自用戶端觀點,伺服器群中發生一故障,則異動程序之結果需在太短以致不能辨識故障之時間中傳回。此處,"在太短以致用戶端不能辨識伺服器群中之故障的時間中"意謂應用程式之規範中所界定之正常情況中的最大回應時間。舉例而言,其為諸如大約三秒之時間。為了保持其,異動程序之超時持續時間、處理權限符記之有效週期及直至用戶端重發之等待時間需經適當設定。
以下將展示其實例。
現在,假設用戶端之異動程序之最大等待時間為T、處理權限符記之有效週期為Tt o 、異動程序之超時持續時間為Tt X 及直至用戶端重發之等待時間為TC W ,可建立以下陳述式。
Tc w >Tt x -(陳述式2) Tt o >Tt x -(陳述式3)
另外,當執行用戶端之重發且將重發傳送至並非主要伺服器群之伺服器群且主要處理權限符記之過期時間已過期時,添加以下陳述式以使得接收重發請求之伺服器群可獲取處理權限符記。
Tc w >Tt o -(陳述式4)
僅需界定Tt x 、Tc w 及Tt o 以滿足(陳述式1)、(陳述式2)、(陳述式3)及(陳述式4)。(陳述式4)並非必要的。
舉例而言,假設T為3000毫秒,Tt x 可設定為1400毫秒,Tt o 設定為1500毫秒,且Tc w 設定為1600毫秒。
有效週期設定機制可經調適以使管理者經由專用螢幕輸入此時間值,或基於給定T計算並顯示滿足上述陳述式之值,且讓管理者進一步調整其。將所決定之時間值發送至伺服器群之每一者且共用。
雖然已藉由使用實施例及實例描述本發明,但是本發明之技術範圍不限於上述實施例中所描述之範圍。可以各種方式修改或改良該等實施例。自申請專利範圍顯而易見地是,具有此等修改或改良之實施例可包括於本發明之技術範圍中。
可藉由一程式來實現被描述為本發明之實施例之異動處理方法以使電腦上之系統或電腦執行功能。儲存該程式之電腦可讀記錄媒體可為電、磁、光學、電磁、紅外線或半導體系統(或裝置或設備)或傳播媒體。電腦可讀記錄媒體之實例包括半導體或固態儲存裝置、磁帶、抽取式電腦可讀磁碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、硬質磁碟及光碟。此時光碟之實例包括緊密光碟唯讀記憶體(CD-ROM)、緊密光碟讀取l寫入(CD-R/W)及DVD。
1、2、3...伺服器群
1a、2a、3a...DB
1b、2b、3b...DB伺服器
1c、2c、3c...應用伺服器
4、5...用戶端
8...仲裁器
40...伺服器群
41...應用伺服器
42...DB伺服器
45...異動前端機制
46...異動後端機制
46b...提議機制
50...異動處理系統
51...異動起始處理機制
51a...控制單元
51b...異動冗餘偵測單元
51c...符記互斥控制單元
51d...資料一致性處理單元
52...承諾處理機制
52b...資料複製處理單元
52c...承諾建立處理單元
52d...承諾發送單元
53...有效週期設定機制
53a...控制單元
53b...異動重發時間設定單元
53c...符記有效週期設定單元
53d...用戶端通信單元
60a...主要伺服器群
60b...後備伺服器群
61...符記請求發送單元
62...符記回覆接收單元
63...符記請求處理單元
64...承諾請求發送單元
65...承諾請求回覆接收單元
66...承諾請求處理單元
67a...處理權限符記獲取請求訊息
67b...處理權限符記獲取請求回覆訊息
68a...承諾請求訊息
68b...承諾請求回覆訊息
70...處理權限符記獲取請求訊息發送程序
80...對處理權限符記獲取請求的回覆訊息接收程序
90...處理權限符記獲取請求訊息接收程序
110...承諾請求訊息發送程序
120...對承諾請求之回覆訊息接收程序
130...承諾請求訊息接收程序
圖1為展示異動處理系統之基本形式之圖式:圖2為展示異動處理系統之最小組態之圖式:圖3為展示F=1情況下Paxos承諾之組態實例的圖式:圖4為展示根據本發明之實施例之系統組態及提議機制之位置實例的圖式:圖5為展示根據本發明之實施例之異動處理系統的圖式:圖6為展示主要及後備伺服器群之訊息發送/接收處理單元的圖式:圖7為展示符記請求發送單元61之處理流程的圖式:圖8為展示符記回覆接收單元62之處理流程的圖式:圖9為展示符記請求處理單元63之處理流程的圖式:圖10為展示符記請求處理單元63之處理流程(繼續)的圖式:圖11為展示承諾請求發送單元64之處理流程的圖式:圖12為展示承諾請求回覆接收單元65之處理流程的圖式:及圖13為展示承諾請求處理單元66之處理流程的圖式。
50...異動處理系統
51...異動起始處理機制
51a...控制單元
51b...異動冗餘偵測單元
51c...符記互斥控制單元
51d...資料一致性處理單元
52...承諾處理機制
52a...控制單元
52b...資料複製處理單元
52c...承諾建立處理單元
52d...承諾發送單元
53...有效週期設定機制
53a...控制單元
53b...異動重發時間設定單元
53c...符記有效週期設定單元
53d...用戶端通信單元

Claims (10)

  1. 一種電腦實施之異動處理方法,其中該電腦系統包含連接至一網路之複數個用戶端及複數個伺服器群,該複數個伺服器群之每一者包含一資料庫(DB)、一用於管理該資料庫之DB伺服器,及用於與該DB伺服器及該複數個用戶端通信之一應用伺服器,該方法包含:根據經由該應用伺服器、來自該用戶端之一異動起始請求,藉由參考一異動ID來藉由一電腦確定具有一相同ID之一異動正被執行還是完成一承諾,且當具有該相同ID之該異動正被執行或完成一承諾時,針對該異動起始請求傳回回復;藉由該電腦將一目標異動之該異動ID、該異動所更新之資料及待傳回之一處理結果傳送至所有該等伺服器群,及藉由該電腦檢查該資料是否複製至多數伺服器群中的該資料庫;當經複製之該資料之該檢查係成功時,藉由該電腦發送一承諾請求之一訊息至所有該等其他伺服器群,且當接收到來自多數該等其他伺服器群之一承諾協議時,藉由該電腦確定該承諾請求係成功的;藉由該電腦將由該確定所建立之該承諾之一結果發送至所有該等其他伺服器群;藉由該電腦檢查該自伺服器群是否保存一有效限時處理權限符記,且當該自伺服器群未保存該有效限時處理權限符記時,發出對該有效限時處理權限符記之一獲取 請求至除了該自伺服器群之外之所有該等其他伺服器群,且等待該獲取請求在多數該等其他伺服器群處之完成;當在該有效限時處理權限符記獲取正被處理時接收到該承諾請求時,則不藉由該電腦回覆該承諾請求直至該有效限時處理權限符記獲取程序完成,或藉由該電腦執行對該承諾請求之一訊息之一重發請求;及當獲取該有效限時處理權限符記時,該電腦之該自伺服器群在所有該等其他伺服器群中執行資料一致性。
  2. 如請求項1之異動處理方法,進一步包含:藉由該電腦發送該承諾請求之一訊息至所有該等其他伺服器群,且當自接收到該承諾請求之一回覆起直至一承諾建立時接收到該有效限時處理權限符記之一獲取訊息時,不藉由該電腦回覆該有效限時處理權限符記之該獲取訊息直至建立該承諾,或藉由該電腦執行對該有效限時處理權限符記之一獲取訊息之一重發請求。
  3. 如請求項1之異動處理方法,進一步包含:藉由該電腦自該等其他伺服器群接收未建立異動日誌,且在該有效限時處理權限符記獲取完成之前,使該等未建立異動日誌之一狀態同步。
  4. 如請求項1之異動處理方法,進一步包含:當接收到該有效限時處理權限符記之獲取請求訊息時及接收到該有效限時處理權限符記之獲取請求響應訊息時,當該訊息中包括具有一未知承諾之異動資訊時,藉 由該電腦參考該異動資訊,且當該異動之一承諾或回復已經建立時,藉由該電腦傳回該結果。
  5. 如請求項1之異動處理方法,進一步包含:藉由該電腦確定除了發送該承諾請求之一訊息之伺服器群之外之第二其他伺服器群是否保存針對該承諾請求訊息之該有效限時處理權限符記,且當該第二其他伺服器群保存該有效限時處理權限符記時,藉由該電腦傳回一對該承諾請求之拒絕,且若其不保存該有效限時處理權限符記,則藉由該電腦傳回核準。
  6. 如請求項1之異動處理方法,進一步包含:藉由該電腦使該用戶端設定發送該異動起始請求之一異動重發時間及該有效限時處理權限符記之一有效週期。
  7. 如請求項1之異動處理方法,其中該有效限時處理權限符記包括一過期時間。
  8. 一種用於異動處理之電腦系統,該電腦系統包含連接至一網路之複數個用戶端及複數個伺服器群,該複數個伺服器群之每一者包含一資料庫(DB)、一用於管理該資料庫之DB伺服器,及用於與該DB伺服器通信之一或多個應用伺服器,該系統包含:用於該每一資料庫之一用以儲存資料的記憶體;及用於該每一DB伺服器之一處理器,該處理器經組態以:根據經由該應用伺服器、來自該用戶端之一異動起始 請求,藉由參考一異動ID來確定具有一相同ID之一異動正被執行還是完成一承諾,且當具有該相同ID之該異動正被執行或完成一承諾時,針對該異動起始請求傳回回復;檢查自伺服器群是否保存一有效限時處理權限符記,且當該自伺服器群未保存該有效限時處理權限符記時,發出對該有效限時處理權限符記之一獲取請求至除了該自伺服器群之外之所有該等伺服器群,且等待該獲取請求在多數伺服器群處之完成;當在該有效限時處理權限符記獲取正被處理時接收到該承諾請求時,則不回覆該承諾請求直至該有效限時處理權限符記獲取程序完成,或執行對該承諾請求之一訊息之一發送請求;當獲取該有效限時處理權限符記時,藉由該自伺服器群在所有該等伺服器群中執行資料一致性,及在該異動之一承諾程序中,該電腦系統進一步經組態以:將一目標異動之該異動ID、該異動所更新之資料及待傳回之一處理結果傳送至所有該等其他伺服器群,且檢查該資料是否複製至至少多數伺服器群中之該資料庫;當經複製之該資料之檢查係成功時,發送一承諾請求之一訊息至所有該等其他伺服器群,且當接收到來自多數伺服器群之一承諾協議時,確定該承諾請求係成功的;及 將藉由承諾建立所建立之一承諾的結果發送至所有該等其他伺服器群。
  9. 如請求項8之電腦系統,其進一步經組態以:使該用戶端設定發送該異動起始請求之該用戶端之一異動重發時間及該有效限時處理權限符記之一有效週期。
  10. 一種電腦程式產品,其包含體現可在一電腦系統上執行之電腦可讀程式碼之一電腦可讀儲存媒體,該電腦系統包含連接至一網路之複數個用戶端及複數個伺服器群,該複數個伺服器群之每一者包含一資料庫(DB)、一用於管理該資料庫之DB伺服器及用於與該DB伺服器及該等用戶端通信之一或多個應用伺服器,以根據請求項1至7之任一者執行該異動處理方法。
TW095141346A 2005-11-30 2006-11-08 故障容忍之異動處理系統 TWI416901B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005345572 2005-11-30

Publications (2)

Publication Number Publication Date
TW200740147A TW200740147A (en) 2007-10-16
TWI416901B true TWI416901B (zh) 2013-11-21

Family

ID=38088751

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095141346A TWI416901B (zh) 2005-11-30 2006-11-08 故障容忍之異動處理系統

Country Status (7)

Country Link
US (3) US7478114B2 (zh)
EP (1) EP1959347A4 (zh)
JP (1) JP4871296B2 (zh)
CN (1) CN101317163B (zh)
CA (1) CA2657676C (zh)
TW (1) TWI416901B (zh)
WO (1) WO2007063944A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041985B2 (en) * 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US8806601B2 (en) * 2008-02-29 2014-08-12 International Business Machines Corporation Non-interactive entity application proxy method and system
US8930550B2 (en) * 2008-03-11 2015-01-06 International Business Machines Corporation Selectable non-interactive entity application proxy method and system
US7792897B2 (en) * 2008-06-02 2010-09-07 International Business Machines Corporation Distributed transaction processing system
JP5226125B2 (ja) * 2009-03-19 2013-07-03 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
CN101925135B (zh) * 2009-06-09 2013-01-23 上海摩波彼克半导体有限公司 第三代移动通信终端rrc层对信令消息事务标识管理的方法
JP5416490B2 (ja) * 2009-06-17 2014-02-12 日本電信電話株式会社 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
US8938533B1 (en) * 2009-09-10 2015-01-20 AppDynamics Inc. Automatic capture of diagnostic data based on transaction behavior learning
US9167028B1 (en) * 2009-09-10 2015-10-20 AppDynamics, Inc. Monitoring distributed web application transactions
JP5123961B2 (ja) * 2010-02-04 2013-01-23 株式会社トライテック 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム
CN101860453A (zh) * 2010-06-10 2010-10-13 华为技术有限公司 事件通知的方法、装置和网络系统
JP2012208578A (ja) * 2011-03-29 2012-10-25 Shimadzu Corp 分析装置制御システム
WO2012164570A1 (en) * 2011-05-30 2012-12-06 Hewlett-Packard Development Company, L.P. Method of managing usage rights iν a share group of servers
US8806043B1 (en) * 2011-06-24 2014-08-12 Juniper Networks, Inc. Server selection during retransmit of a request
CN102349266B (zh) * 2011-08-12 2013-11-06 华为技术有限公司 通信系统中节点设备上配置的服务故障的处理方法及装置
US9311598B1 (en) 2012-02-02 2016-04-12 AppDynamics, Inc. Automatic capture of detailed analysis information for web application outliers with very low overhead
US9712380B2 (en) 2013-08-30 2017-07-18 Shimadzu Corporation Analytical device control system
US9686276B2 (en) 2013-12-30 2017-06-20 AdMobius, Inc. Cookieless management translation and resolving of multiple device identities for multiple networks
US9742692B2 (en) * 2014-06-23 2017-08-22 Microsoft Technology Licensing, Llc Acquiring resource lease using multiple lease servers
WO2016067426A1 (ja) * 2014-10-30 2016-05-06 株式会社日立製作所 分散コンピューティングシステム及び分散処理方法
US9979734B2 (en) * 2015-04-20 2018-05-22 Oath Inc. Management of transactions in a distributed transaction system
WO2017042890A1 (ja) * 2015-09-08 2017-03-16 株式会社東芝 データベースシステム、サーバ装置、プログラムおよび情報処理方法
CN106933547B (zh) * 2015-12-29 2020-12-01 阿里巴巴集团控股有限公司 全局信息获取及处理的方法、装置和更新系统
TWI735518B (zh) * 2017-01-24 2021-08-11 香港商阿里巴巴集團服務有限公司 資料庫的服務提供方法和系統
US11392438B2 (en) * 2017-02-09 2022-07-19 Arm Limited Responding to unresponsive processing circuitry
JP6399127B2 (ja) * 2017-03-08 2018-10-03 日本電気株式会社 システム管理装置、システム管理方法、プログラム、情報処理システム
JP6754115B2 (ja) 2017-03-08 2020-09-09 日本電気株式会社 選択装置、装置選択方法、プログラム
CN107368507B (zh) 2017-03-28 2020-03-27 创新先进技术有限公司 一种基于区块链的共识方法及装置
JP6901677B2 (ja) 2017-04-17 2021-07-14 富士通株式会社 管理プログラム、管理装置および管理方法
CN106973065A (zh) * 2017-04-28 2017-07-21 武汉票据交易中心有限公司 一种服务器事件处理系统及方法
CN108279762A (zh) * 2018-01-22 2018-07-13 北京计算机技术及应用研究所 基于硬件保护的事务处理方法
JP7036665B2 (ja) * 2018-05-22 2022-03-15 株式会社日立製作所 データ管理方法およびデータ管理システム
CN109325196A (zh) * 2018-07-27 2019-02-12 四川长虹电器股份有限公司 基于redis防止接口重复请求的方法
CN113590314A (zh) * 2021-07-13 2021-11-02 上海一谈网络科技有限公司 网络请求数据处理方法和系统
US11768741B2 (en) * 2021-07-30 2023-09-26 International Business Machines Corporation Replicating changes written by a transactional virtual storage access method

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275832B1 (en) * 1998-09-21 2001-08-14 International Business Machines Corporation Providing transaction undo without logging
CN1323417A (zh) * 1998-10-19 2001-11-21 国际商业机器公司 事务处理系统中的失败指示
US20010049717A1 (en) * 2000-05-08 2001-12-06 Freeman Thomas D. Method and apparatus for communicating among a network of servers
US20020108050A1 (en) * 2000-08-28 2002-08-08 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US20030169445A1 (en) * 2002-03-07 2003-09-11 International Business Machines Corporation Efficiently handling client requests in a server farm
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US20040193625A1 (en) * 2003-03-27 2004-09-30 Atsushi Sutoh Data control method for duplicating data between computer systems
JP2004348701A (ja) * 2003-03-27 2004-12-09 Hitachi Ltd 計算機システム間のデータ二重化制御方法
GB2409544A (en) * 2003-12-24 2005-06-29 Ibm Involving participants in a distributed transaction
US20050149764A1 (en) * 2001-09-21 2005-07-07 Microsoft Corporation Systems and methods for managing network connectivity for mobile users
US20050172161A1 (en) * 2004-01-20 2005-08-04 International Business Machines Corporation Managing failover of J2EE compliant middleware in a high availability system
EP1571801A2 (en) * 2004-02-25 2005-09-07 Microsoft Corporation Mutual exclusion techniques in a dynamic peer-to-peer environment

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2540279A1 (de) 1975-09-10 1977-03-24 Basf Ag Verfahren zum herstellen eines katalysators fuer die polymerisation von olefinen
US5319773A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Asynchronous resynchronization of a commit procedure
GB2335516A (en) * 1998-03-18 1999-09-22 Ibm Failure recovery in distributed transaction avoids heuristic damage
US6694429B1 (en) * 1998-08-04 2004-02-17 At&T Corp. Method for establishing call state information without maintaining state information at gate controllers
US6363401B2 (en) * 1998-10-05 2002-03-26 Ncr Corporation Enhanced two-phase commit protocol
US6289382B1 (en) * 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US7657779B2 (en) 2002-09-18 2010-02-02 International Business Machines Corporation Client assisted autonomic computing
US7496574B2 (en) * 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
ATE451256T1 (de) 2003-06-16 2009-12-15 Michelin Soc Tech Reifenlauffläche mit einer belüfteten opferrippe
JP2005027618A (ja) 2003-07-11 2005-02-03 Shinko Engineering Co Ltd 火炎による病害虫防除装置兼雑草種子の殺種装置
US7711825B2 (en) * 2003-12-30 2010-05-04 Microsoft Corporation Simplified Paxos
JP4707477B2 (ja) * 2005-06-23 2011-06-22 富士通株式会社 ファイル共有プログラムおよびファイル共有装置

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275832B1 (en) * 1998-09-21 2001-08-14 International Business Machines Corporation Providing transaction undo without logging
CN1323417A (zh) * 1998-10-19 2001-11-21 国际商业机器公司 事务处理系统中的失败指示
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US20010049717A1 (en) * 2000-05-08 2001-12-06 Freeman Thomas D. Method and apparatus for communicating among a network of servers
US20020108050A1 (en) * 2000-08-28 2002-08-08 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US20050149764A1 (en) * 2001-09-21 2005-07-07 Microsoft Corporation Systems and methods for managing network connectivity for mobile users
US20030169445A1 (en) * 2002-03-07 2003-09-11 International Business Machines Corporation Efficiently handling client requests in a server farm
US20040193625A1 (en) * 2003-03-27 2004-09-30 Atsushi Sutoh Data control method for duplicating data between computer systems
JP2004348701A (ja) * 2003-03-27 2004-12-09 Hitachi Ltd 計算機システム間のデータ二重化制御方法
GB2409544A (en) * 2003-12-24 2005-06-29 Ibm Involving participants in a distributed transaction
US20050144171A1 (en) * 2003-12-24 2005-06-30 International Business Machines Corporation Involving participants in a distributed transaction
US20050172161A1 (en) * 2004-01-20 2005-08-04 International Business Machines Corporation Managing failover of J2EE compliant middleware in a high availability system
EP1571801A2 (en) * 2004-02-25 2005-09-07 Microsoft Corporation Mutual exclusion techniques in a dynamic peer-to-peer environment
JP2005276181A (ja) * 2004-02-25 2005-10-06 Microsoft Corp 動的ピアツーピア環境における相互排除技法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. Wiesmann, F. Pedone, A. Schiper, B. Kemme, G. Alonso, "Understanding Replication in Databases and Distributed Systems", Distributed Computing Systems, 2000. Proceedings. 20th International Conference on Date:10-13 April 2000 *

Also Published As

Publication number Publication date
US20090157757A1 (en) 2009-06-18
US8935224B2 (en) 2015-01-13
US20120191681A1 (en) 2012-07-26
EP1959347A4 (en) 2010-01-20
CN101317163B (zh) 2011-02-09
JP4871296B2 (ja) 2012-02-08
JPWO2007063944A1 (ja) 2009-05-07
US7478114B2 (en) 2009-01-13
TW200740147A (en) 2007-10-16
EP1959347A1 (en) 2008-08-20
CN101317163A (zh) 2008-12-03
WO2007063944A1 (ja) 2007-06-07
US20070124342A1 (en) 2007-05-31
CA2657676C (en) 2016-07-19
US8166007B2 (en) 2012-04-24
CA2657676A1 (en) 2007-06-07

Similar Documents

Publication Publication Date Title
TWI416901B (zh) 故障容忍之異動處理系統
CN107771321B (zh) 数据中心中的恢复
CN103782574B (zh) 用于数据库事务的幂等性
US10360113B2 (en) Transaction recovery in a transaction processing computer system employing multiple transaction managers
US9632828B1 (en) Computing and tracking client staleness using transaction responses
US11768885B2 (en) Systems and methods for managing transactional operation
US10366106B2 (en) Quorum-based replication of data records
US7865763B2 (en) Data replication method
US20130110781A1 (en) Server replication and transaction commitment
US10127124B1 (en) Performing fencing operations in multi-node distributed storage systems
Zhao Performance optimization for state machine replication based on application semantics: a review
US11968311B2 (en) Multi-shard transactions in a Byzantine computing environment
Zhou et al. {Fault-Tolerant} Replication with {Pull-Based} Consensus in {MongoDB}
CN110635941A (zh) 一种数据库节点集群故障迁移方法与装置
US11960478B2 (en) Database system with transactional commit protocol based on safe conjunction of majorities
US7051065B2 (en) Method and system for performing fault-tolerant online validation of service requests
Fan et al. Gossip-based visibility control for high-performance geo-distributed transactions
US10783136B1 (en) Management of garbage data in distributed systems
US20240211471A1 (en) Database system with transactional commit protocol based on safe conjunction of majorities
Lehner et al. Transactional data management services for the cloud
Jensen et al. Unanimous 2PC: Fault-tolerant Distributed Transactions Can be Fast and Simple
Gupta et al. Failure Detection and Fault-Tolerance for Key-Value store in Distributed Systems
Ermolinskiy et al. Minuet: Rethinking Concurrency Control in Storage Area Networks.
Sharma Fault Tolerance in Transaction Systems