[發明專利]一種分布式事務提交故障的處理方法、裝置和系統在審
| 申請號: | 201310522398.0 | 申請日: | 2013-10-29 |
| 公開(公告)號: | CN103559245A | 公開(公告)日: | 2014-02-05 |
| 發明(設計)人: | 姚理;朱仲楚;邱濤 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F9/44;H04L29/08 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 事務 提交 故障 處理 方法 裝置 系統 | ||
技術領域
本發明涉及通信網絡技術領域,尤其涉及一種分布式事務提交故障的處理方法、裝置和系統。
背景技術
事務(Transaction)是一個操作序列為實現特定業務功能而訪問數據庫的最小邏輯工作單位,通常包含本地事務和分布式事務、又稱全局事務。
分布式事務是指一個事務可能涉及多個數據庫操作,例如,一個事務中可能更新幾個不同的數據庫。當對這些數據庫進行操作后,對這些數據庫的修改必須全部被提交或回滾,提交指將修改后的數據寫入到磁盤,回滾指取消修改,不允許有的數據庫提交而有的數據庫沒有提交,該特性稱為事務的原子性和一致性。此時一個數據庫對自己內部所做操作的提交不僅依賴本身操作是否成功,還要依賴與分布式事務相關的其它數據庫的操作是否成功,如果任一數據庫的任一操作失敗,則參與此事務的所有數據庫所做的所有操作都必須回滾。
一般情況下,某一數據庫無法知道其它數據庫在做什么,因此,通常的需要引入一個事務管理器作為交易中間件進行協調控制,并且采用兩階段來完成一個分布式事務的提交,其具體過程如下:
事務管理器接收到應用程序的事務提交請求后,通知與該事務關聯的各個數據庫執行兩階段的事務提交。
在第一階段,事務管理器請求各個數據庫準備提交各自的事務分支,以確認是否所有相關數據庫都可以提交各自的事務分支,該第一階段提交稱為預提交,各自的事務分支稱為本地事務。當某一數據庫收到預提交請求后,如果可以提交屬于自己的事務分支,則將自己在該事務分支中所做的數據操作記錄到該數據庫的重做日志(Redo?Log),并給事務管理器一個同意提交的應答,但此時數據庫并沒有真正提交該事務。事務管理器審查各個數據庫返回的預提交結果,如都可以提交,事務管理器要求各個數據庫做正式提交、進入第二階段。如果有任一數據庫預提交返回失敗,事務管理器將要求所有其它數據庫回滾其操作,這樣該分布式事務被回滾。
在第二階段,事務管理器要求各個數據庫執行正式提交,這樣該分布式事務被提交;正式提交包括在重做日志中記錄commit操作,并將修改后的數據寫入磁盤,當接收到各個數據庫第二階段提交成功的響應后,事務管理器結束該分布式事務,并通知應用程序事務提交成功。
但是在第二階段,當事務管理器、數據庫故障(例如突然宕機),或者兩者之間的網絡連接異常時,可能出現部分數據庫成功提交了事務、部分數據庫沒有完成提交的情況,因為各數據庫是相互獨立的,無法感知對方的狀態,該場景下沒有完成提交的數據庫將不知道如何處理未結束的事務,導致該事務無法自動修復,從而事務的原子性和一致性無法得到保證;或者事務管理器接收不到數據庫返回的第二階段提交響應,導致事務無法自動修復。即現有技術中,在分布式事務第二階段提交過程中出現故障時存在該事務無法自動修復的缺陷。
發明內容
本發明實施例提供了一種分布式事務的提交故障的處理方法、裝置和系統,用于解決分布式事務第二階段提交出現故障時無法自動修復的問題,并且保證了分布式事務的原子性和一致性。
第一方面,本發明實施例提供的分布式事務提交故障的處理方法包括:在完成分布式事務的第一階段提交后,第一節點記錄所述分布式事務的狀態為未結束;所述第一節點故障或所述第一節點與第二節點之間的網絡連接故障且故障恢復后,根據所述記錄的分布式事務的狀態為未結束,向所述第二節點發送事務狀態查詢請求,所述事務狀態查詢請求包含所述分布式事務的標識,其中,所述第一節點為事務管理器,所述第二節點為與所述分布式事務關聯的數據庫,或者,所述第一節點為與所述分布式事務關聯的數據庫,所述第二節點為事務管理器;根據所述第二節點返回的所述分布式事務的狀態,進行所述分布式事務的第二階段的修復。
在第一方面的第一種可能的實現方式中,所述第一節點為與所述分布式事務關聯的數據庫,所述第二節點為事務管理器;所述第二節點返回的所述分布式事務的狀態為未結束,所述進行所述分布式事務的第二階段的修復包括所述數據庫執行所述分布式事務的第二階段提交以及向所述事務管理器返回所述第二階段提交的結果。
在第一方面的第二種可能的實現方式中,所述第一節點為事務管理器,所述第二節點為與所述分布式事務關聯的數據庫;所述第二節點返回的所述分布式事務的狀態為未結束,所述進行所述分布式事務的第二階段的修復包括所述事務管理器向所述數據庫發送第二階段提交請求。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310522398.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種水煤漿的制備工藝
- 下一篇:圖片顯示方法及終端





