[發明專利]一種基于日志解析同步的并行執行方法和數據同步系統在審
| 申請號: | 202010500197.0 | 申請日: | 2020-06-04 |
| 公開(公告)號: | CN111858505A | 公開(公告)日: | 2020-10-30 |
| 發明(設計)人: | 付銓;孫峰;彭青松;劉啟春 | 申請(專利權)人: | 武漢達夢數據庫有限公司 |
| 主分類號: | G06F16/17 | 分類號: | G06F16/17;G06F16/178;G06F16/23;G06F16/27 |
| 代理公司: | 深圳市六加知識產權代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武漢市東湖新技術開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 日志 解析 同步 并行 執行 方法 數據 系統 | ||
1.一種基于日志解析同步的并行執行方法,其特征在于,所述并行執行方法包括:
日志接收線程在獲取到提交操作后,將所述提交操作所屬的待執行事務分發至相對應的事務執行線程,其中,每一個事務執行線程負責一個待執行事務的入庫處理;
從所述待執行事務中取出待執行操作,所述事務執行線程獲取當前待執行操作的操作類型和所述當前待執行操作所涉及的對象;
根據所述當前待執行操作的操作類型構造適合于所述當前待執行操作的目標鎖;
基于所述目標鎖為所述當前待執行操作所涉及的對象上鎖。
2.根據權利要求1所述的并行執行方法,其特征在于,所述根據所述當前待執行操作的操作類型構造適合于所述當前待執行操作的目標鎖包括:
若所述當前待執行操作為DML操作,則構造適合于所述當前待執行操作的共享鎖;
若所述當前待執行操作為DDL操作,則構造適合于所述當前待執行操作的排他鎖。
3.根據權利要求2所述的并行執行方法,其特征在于,所述事務執行線程獲取當前待執行操作的操作類型和所述當前待執行操作所涉及的對象包括:
判斷當前待執行操作的操作類型;
若所述當前待執行操作為DDL操作,則判斷所述DDL操作的操作類型;
若所述DDL操作為重命名操作,則獲取所述重命名操作所對應的新對象名稱和舊對象名稱,所述新對象名稱和所述舊對象名稱均為所述重命名操作所涉及的對象,以便同時上鎖。
4.根據權利要求3所述的并行執行方法,其特征在于,所述判斷所述DDL操作的操作類型之后還包括:
當所述DDL操作為觸發器操作時,則獲取所述觸發器操作所對應的觸發器名稱和觸發器所歸屬的表名,所述觸發器名稱和觸發器所歸屬的表名均為所述觸發器操作所涉及的對象,以便同時上鎖。
5.根據權利要求3所述的并行執行方法,其特征在于,所述判斷所述DDL操作的操作類型之后還包括:
當所述DDL操作為創建同義詞操作,則獲取所述創建同義詞操作所對應的同義詞名稱和所述創建同義詞操作所指向的對象名稱,所述同義詞名稱和所述創建同義詞操作所指向的對象名稱均為所述創建同義詞操作所涉及的對象,以便同時上鎖。
6.根據權利要求1~5任一項所述的并行執行方法,其特征在于,所述基于所述目標鎖為所述當前待執行操作所涉及的對象上鎖包括:
當所述當前待執行操作為DML操作時,判斷基于所述目標鎖是否能夠為所述當前待執行操作成功上鎖;
若可以成功上鎖,則從所述待執行事務中取出下一個待執行操作,進行上鎖;
若上鎖失敗,則等待直至完成上鎖。
7.根據權利要求6所述的并行執行方法,其特征在于,所述基于所述目標鎖為所述當前待執行操作所涉及的對象上鎖包括:
當所述當前待執行操作為DDL操作時,判斷基于所述目標鎖是否能夠為所述當前待執行操作成功上鎖;
若上鎖失敗,則等待直至完成上鎖;
若上鎖成功,則執行所述當前待執行操作,判斷所述當前待執行操作是否能夠執行成功;
若執行成功,則接收日志接收線程分發的新的待執行事務。
8.根據權利要求7所述的并行執行方法,其特征在于,所述判斷所述當前待執行操作是否能夠執行成功之后還包括:
若執行失敗,則定位所述當前待執行操作所屬的事務執行線程在執行線程鏈表中的位置;
從后往前對所述執行線程鏈表中正在執行的事務進行檢查;
根據檢查結果選擇性重新執行所述當前待執行操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢達夢數據庫有限公司,未經武漢達夢數據庫有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010500197.0/1.html,轉載請聲明來源鉆瓜專利網。





