本發明專利技術公開了一種狀態機復制方法,該方法包括步驟:主結點接收客戶端發送的更新請求,驗證是否已更新;如果否,則由主結點向從結點發送提案消息;從結點接收提案消息后進行驗證,如果驗證成功則向其它結點發送批準消息;結點收到所述批準消息后,判斷該結點收到的批準消息是否超過總結點數一半,如果是,該結點執行更新請求,否則,該結點不執行更新請求,主結點更新請求執行完成后向客戶端發送執行結果。通過該方法消除了數據狀態的同步持久化,實現了分布式場景下數據的可靠復制,大大降低了延遲;保證了系統的正常進展和結點的正確恢復,提高了災難后數據的恢復完整性。
【技術實現步驟摘要】
本專利技術涉及計算機數據處理領域,特別涉及。
技術介紹
互聯網的普及和電子商務的興起,使得在線電子交易的需求日益增加,交易系統的重要性也與日俱增。交易系統在實時交易時段內是一個典型的聯機事務處理系統,在數據訪問方式上具有寫操作密集的特點。由于交易數據的特殊性,對于交易系統提出了高性能、高可用性等突出要求。以證券交易系統為例,近年來全球各主要交易所紛紛對其交易系統進行技術改造,追求訂單處理的低延遲和高性能。目前,納斯達克等宣稱其交易系統的訂單處理延遲已降至百微秒量級。實現交易系統的高可用性的通用方法是主備機復制。根據結點間通信所依賴媒介的不同,可以采用兩類方法進行復制備份,一類基于共享存儲,另一類則基于消息傳遞。基于共享存儲的技術,擁有模型簡單、易于實現等特點。然而在該技術中,日志持久化操作成為高延遲的重要原因。日志持久化的延遲受限于用作共享存儲的非易失性存儲設備的性能,再加上共享存儲設備中需對數據進行冗余備份和事務保護以確保數據可靠性,因而使得降低訂單處理延遲變得困難。日志的同步持久化成為系統運行的瓶頸。萬兆以太網、InfiniBancURDMA等高速網絡技術的出現與成熟,使得基于消息傳遞的狀態機復制方法為降低延遲提供了可能。該方法通過發送消息來實現多結點間的數據復制。其復雜性在于如何避免因網絡或結點問題造成的結點之間數據的不一致。該問題可以通過容錯共識算法來解決。Paxos算法是一種經典的容錯共識算法,可以解決上述分布式復制中的一致性的問題。其擴展后所得到的容錯復制算法Multi-Paxos已被廣泛地應用于Google Chubby 等分布式系統中。然而,普通的Multi-Paxos算法由于以下一些問題不能直接應用于對性能要求極高的聯機事務處理系統中一是現有的算法基本針對的是磁盤數據復制,而缺乏針對內存駐留數據容錯訪問的通用模型;二是系統運行過程中,需對結點的數據狀態進行同步持久化,以保證算法正確性,但該操作大大增加了延遲;三是對于算法涉及的主結點選舉、保證系統進展等實現問題,未給出明確的解決方法。
技術實現思路
(一)要解決的技術問題本專利技術要解決的技術問題是系統運行過程中需要對結點的數據狀態進行同步持久化,延遲時間長、性能低, 缺乏針對內存駐留數據容錯訪問的通用方法,在主結點出現問題時無法選舉新的主結點, 無法保證系統進展的一致性。(二)技術方案為解決上述技術問題,本專利技術提供了,該方法包括步驟3SI主結點接收客戶端發送的更新請求,驗證是否已更新;S2如果否,則由主結點向從結點發送提案消息;S3從結點接收提案消息后進行驗證,如果驗證成功則向其它結點發送批準消息;S4結點收到所述批準消息后,判斷該結點收到的批準消息是否超過總結點數一半,如果是,該結點執行更新請求,否則,該結點不執行更新請求,主結點更新請求執行完成后向客戶端發送執行結果。所述提案消息包含向量時鐘、試圖編碼、實力編碼和更新請求,所述批準消息包含視圖編碼、向量時鐘和實例編碼。所述步驟S3的驗證方法為比較提案消息中的視圖編碼與本地的視圖編碼,如果一致則驗證成功。該方法包括步驟S5主結點和從結點周期性的向其他結點廣播心跳消息,各結點收到心跳消息后將其中的進展信息與本地進展信息進行比對,如果本地結點相對于廣播信息落后,向廣播心跳消息的結點發送請求,進行追趕。當結點收到的心跳消息超時時,對超時結點進行故障檢測。該方法還包括在主結點崩潰的情況下,在從結點中選舉出新的主結點,進行步驟 S1-S4。在從結點中選舉出新的主結點具體包括SI,從結點檢測到主結點心跳消息超時,發送選舉準備信息給其他結點;S2’其他結點接收到選舉準備信息后啟動選舉定時器,進行主結點選舉;S3’主結點選舉成功后被選舉的結點進入主結點狀態,其他結點進入從結點狀態;S4’當選舉定時器超時而選舉沒有完成時,重復S1’_S3’步,直到新的主結點產生。該方法還包括步驟當結點崩潰時對結點進行恢復。所述對結點進行恢復具體包括SI”待恢復結點進入恢復狀態;S2”待恢復結點根據本地磁盤上已持久化的更新請求序列進行恢復;S3”待恢復結點向當前系統中所有正確結點發送恢復請求;S4”結點接收到恢復請求后根據回復請求中的信息判斷是否發送恢復響應;S5”待恢復結點接收到恢復響應后,將恢復響應中的信息與本地信息比較并更新本地信息,然后將待恢復結點轉換為結點狀態。該方法包括步驟使用循環頁表并以頁為單位對更新數據進行順序分配、持久化和釋放。(三)有益效果消除了數據狀態的同步持久化,實現了分布式場景下數據的可靠復制,大大降低了延遲;保證了系統的正常進展和結點的正確恢復,提高了災難后數據的恢復完整性。附圖說明圖I為本專利技術在聯機事務處理場景中的部署應用簡圖。圖2為本專利技術主結點穩定情況下主結點的更新請求處理流程。圖3為本專利技術主結點穩定情況下的從結點的更新請求處理流程。圖4為本專利技術所述主結點穩定情況下的狀態機復制方法的消息流程圖。圖5為本專利技術狀態機復制方法中結點的狀態轉移圖。圖6為本專利技術主結點選舉方法的消息流程圖。圖7為本專利技術所述異步持久化方法中使用的循環頁表的示意圖。具體實施方式下面結合附圖和實施例,對本專利技術的具體實施方式作進一步詳細描述。以下實施例用于說明本專利技術,但不用來限制本專利技術的范圍。如圖1所示,本專利技術提出的模型可以部署應用于聯機事務處理系統。本專利技術提出的無數據持久化的狀態機復制方法可以視為圖中“更新定序”部分的核心。如圖1所示,在主結點穩定情況下,將系統結點的角色劃分為兩種主結點態和從結點態。除此之外,結點還可能處于兩種狀態選舉態和恢復態。四種狀態的相互轉換如圖 5所示。在穩定情況下,系統有一個主結點和多個從結點。圖1所示的系統由一個主結點和兩個從結點構成。主結點負責與客戶端進行通信,包括(I)接收更新請求,并通過本專利技術提出的狀態機復制方法將該請求復制到各從結點,由各從結點分別對數據副本進行操作;(2)對于主結點,還要向客戶端返回執行結果。下表為本專利技術提出的狀態機復制方法實施例中涉及相關內容的定義,其中表I為相關術語定義;表2為變量定義;表3為消息定義。表I相關術語定義權利要求1.,其特征在于,該方法包括步驟 Si主結點接收客戶端發送的更新請求,驗證是否已更新; S2如果否,則由主結點向從結點發送提案消息; S3從結點接收提案消息后進行驗證,如果驗證成功則向其它結點發送批準消息; S4結點收到所述批準消息后,判斷該結點收到的批準消息是否超過總結點數一半,如果是,該結點執行更新請求,否則,該結點不執行更新請求,主結點更新請求執行完成后向客戶端發送執行結果。2.如權利要求I所述的ー種狀態機復制方法,其特征在于,所述提案消息包含向量時鐘、視圖編號、實例編號和更新請求,所述批準消息包含視圖編號、向量時鐘和實例編號。3.如權利要求2所述的ー種狀態機復制方法,其特征在于,所述步驟S3的驗證方法為與提案消息中的向量時鐘和視圖編號比較,如果一致則驗證成功。4.如權利要求I所述的ー種狀態機復制方法,其特征在于,該方法包括步驟 S5主結點和從結點周期性的向其他結點廣播心跳消息,各結點收到心跳消息后將其中的進展信息與本地進展信息進行比對,如果本地結點相對于廣播信息落后,向廣播心跳消息的結點發送請求,進行追赴。5.如權利本文檔來自技高網...
【技術保護點】
一種狀態機復制方法,其特征在于,該方法包括步驟:S1主結點接收客戶端發送的更新請求,驗證是否已更新;S2如果否,則由主結點向從結點發送提案消息;S3從結點接收提案消息后進行驗證,如果驗證成功則向其它結點發送批準消息;S4結點收到所述批準消息后,判斷該結點收到的批準消息是否超過總結點數一半,如果是,該結點執行更新請求,否則,該結點不執行更新請求,主結點更新請求執行完成后向客戶端發送執行結果。
【技術特征摘要】
【專利技術屬性】
技術研發人員:張勇,唐家勇,邢春曉,
申請(專利權)人:清華大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。