[發明專利]一種分布式事務提交方法及裝置有效
| 申請號: | 201910779564.2 | 申請日: | 2019-08-22 |
| 公開(公告)號: | CN110532069B | 公開(公告)日: | 2021-06-29 |
| 發明(設計)人: | 易存道 | 申請(專利權)人: | 北京寶蘭德軟件股份有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 苗曉靜 |
| 地址: | 100020 北京市朝*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 事務 提交 方法 裝置 | ||
本發明實施例提供一種分布式事務提交方法及裝置,包括:接收到提交全局事務的請求后,參與全局事務的所有XA資源,依次采用一階段事務提交的方式將與全局事務有關的修改提交到所在XA資源的主節點中,在所在XA資源的讀寫分離代理的事務日志中記錄反向操作;參與全局事務的所有XA資源成功提交全局事務后,在參與全局事務的各個XA資源中,將反向操作從所在XA資源的讀寫分離代理的事務日志中清除,通知所在XA資源的主節點將全局事務的提交同步到所在XA資源的從節點中。本發明實施例提供的分布式事務提交方法及裝置減少了事務提交過程中和每個XA資源的交互次數,減少了對每一個XA資源的加鎖時間,大幅度提高了全局事務的處理效率。
技術領域
本發明涉及事務處理領域,尤其涉及一種分布式事務提交方法及裝置。
背景技術
XA兩階段事務提交協議是X/OPEN組織定義的一個用于分布式事務環境下的兩階段提交協議,用于確保多個參與事務的資源之間的數據一致性和完整性。目前主流的數據庫和消息中間件服務器都支持XA協議。
在事務需要提交時,調用每個參與事務的資源XAResource的XAResource.papare來收集投票結果,如果所有的XAResource都返回XAResource.XA_COMMIT,則可以提交事務,調用XAResource.commit來提交事務。如果在第一階段中,參與事務的XAResource有一個不同意提交,則調用XAResource.rollback來回滾事務。
XA兩階段事務提交協議中,通常的事務提交流程如下:
1)劃分原子性操作。圖1為現有技術中劃分每個XAResource的原子性工作的示意圖,如圖1所示,劃分原子性操作包括:用XAResource.start和XAResource.end劃分每個XAResource上的原子性工作。位于XAResource.start和XAResource.end之間的工作,要么提交,要么回滾。
2)提交事務。圖2為現有技術中兩階段事務提交的示意圖,如圖2所示,提交事務包括:在事務需要提交時,第一階段,調用每個XAResource的XAResource.papare來收集投票結果,如果所有的XAResource都返回XAResource.XA_COMMIT,則可以在第二階段通過調用XAResource.commit來提交事務。在提交事務的流程中,從執行XAResource.prepare開始,中途等待其他XA資源的投票結果,到執行XAResource.commit提交完成,均需要對XA資源進行加鎖防止其他修改。
3)回滾事務。圖3為現有技術中兩階段事務回滾的示意圖,如圖3所示,回滾事務包括:如果在第一階段中,參與事務的XAResource,有一個不同意提交,則調用XAResource.rollback來回滾事務。在回滾事務的流程中,從執行XAResource.prepare開始,中途等待其他XA資源的投票結果,到執行XAResource.rollback回滾完成,均需要對XA資源進行加鎖防止其他修改。
為了確保數據的一致性,XA協議采用嚴格的兩階段協議來提交事務,由于每次事務提交都需要同XA資源進行多次交互,導致使用XA協議來提交事務的系統事務處理能力較低。嚴格按照XA兩階段協議來提交事務,每次事務提交時都需要針對每個參與到事務中的XA資源進行投票統計和提交事務兩步操作,投票階段和事務提交階段會對XA資源中的數據資源加鎖以保證數據一致性,加鎖的時間越長,越會降低系統處理事務的能力。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京寶蘭德軟件股份有限公司,未經北京寶蘭德軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910779564.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種分布式事務的管理方法
- 下一篇:用于方法調用的方法、存儲介質、設備及系統





