[發明專利]一種基于日志解析同步的事務合并執行方法及裝置在審
| 申請號: | 202010470229.7 | 申請日: | 2020-05-28 |
| 公開(公告)號: | CN111930693A | 公開(公告)日: | 2020-11-13 |
| 發明(設計)人: | 孫峰;付銓;黃海明;余院蘭 | 申請(專利權)人: | 武漢達夢數據庫有限公司 |
| 主分類號: | G06F16/17 | 分類號: | G06F16/17;G06F16/27;G06F9/46 |
| 代理公司: | 深圳市六加知識產權代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武漢市東湖新技術開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 日志 解析 同步 事務 合并 執行 方法 裝置 | ||
1.一種基于日志解析同步的事務合并執行方法,其特征在于,包括:
按照表ID將存在多個表操作的事務打散,并選擇相同表ID的多個事務添加到待合并事務鏈表;
按順序依次從待合并事務鏈表取出各事務進行合并,且每合并一個事務,將該事務的提交LSN添加到已合并事務鏈表,將合并后生成的操作存放至操作容器;其中,當從待合并事務鏈表中取出第i個事務時,利用已合并事務鏈表中的i-1個提交LSN作為分割界限,在操作容器中劃出i-1個操作區間;按順序依次從所述第i個事務中取出操作,通過當前操作的LSN在操作容器中定位到相應的操作區間,并在相應的操作區間內找到與當前操作相同操作類型的操作位置,將當前操作插入至該位置;
完成各事務的合并后,從操作容器中按順序提取操作執行;其中,夾在兩個操作中間的提交操作忽略執行,相同的操作合并后批量執行;
其中,各操作按LSN的大小順序發送至目的端,所述待合并事務鏈表與所述已合并事務鏈表中的對象按事務的提交LSN的大小順序存放。
2.根據權利要求1所述的基于日志解析同步的事務合并執行方法,其特征在于,在所述選擇相同表ID的多個事務添加到待合并事務鏈表之前,所述方法還包括:
源端數據庫同步系統從源端數據庫讀取日志后,按捕獲日志的順序進行日志解析,并將解析以后的操作按順序發送到目的端數據庫同步系統;
目的端數據庫同步系統接收到源端的操作后,按操作的事務ID和表ID進行分類管理,在接收到事務提交操作后將相同事務ID的事務添加到待執行事務鏈表;
其中,所述待執行事務鏈表中的事務按事務提交LSN的大小順序存放。
3.根據權利要求2所述的基于日志解析同步的事務合并執行方法,其特征在于,所述選擇相同表ID的多個事務添加到待合并事務鏈表,具體為:
執行線程從所述待執行鏈表中取出一個事務添加到所述待合并鏈表,根據該事務的表ID從所述待執行鏈表中選擇相同表ID的事務,并將選出的有相同表ID的事務也添加到所述待合并鏈表中。
4.根據權利要求1所述的基于日志解析同步的事務合并執行方法,其特征在于,對于待合并事務鏈表中的任一事務A,合并過程具體包括:
從所述待合并事務鏈表中取出事務A,從所述已合并事務鏈表中取一個提交LSN,并將該提交LSN作為當前的分割LSN;
從事務A中取出一個操作,判斷當前操作的操作類型是否是提交操作;如果是提交操作,則將該提交操作追加到操作容器,將對應的提交LSN添加到所述已合并事務鏈表,并按順序繼續從所述待合并事務鏈表中取出下一個事務;如果不是提交操作,則判斷當前操作的LSN是否小于分割LSN。
5.根據權利要求4所述的基于日志解析同步的事務合并執行方法,其特征在于,合并過程中采用操作鏈表來存放需要批量合并的操作,如果當前操作的LSN小于分割LSN,則判斷當前操作的操作類型是否與操作鏈表中操作的操作類型一致;如果一致,則將當前操作添加到所述操作鏈表中,并按順序繼續從事務A中提取下一個操作。
6.根據權利要求5所述的基于日志解析同步的事務合并執行方法,其特征在于,如果當前操作的操作類型與操作鏈表中操作的操作類型不一致,則使用分割LSN在所述操作容器中定位,并從定位處向前搜索是否存在和操作鏈表中的操作相同操作類型的操作,一直搜索到上一次合并操作的位置或上個事務的提交操作為止;
如果搜索到與操作鏈表中的操作相同操作類型的操作,則將操作鏈表中的操作合并至搜索到的位置;如果搜索不到,則將操作鏈表中的操作合并至搜索停止的位置;
合并完成后清空操作鏈表,將當前操作添加到操作鏈表中,并按順序繼續從事務A中提取下一個操作。
7.根據權利要求4所述的基于日志解析同步的事務合并執行方法,其特征在于,合并過程中采用操作鏈表來存放需要批量合并的操作,如果當前操作的LSN大于分割LSN,則判斷當前所述操作鏈表中是否存在操作;
如果存在,則使用分割LSN在所述操作容器中定位,并從定位處向前搜索是否存在和操作鏈表中的操作相同操作類型的操作,一直搜索到上一次合并操作的位置或上個事務的提交操作為止。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢達夢數據庫有限公司,未經武漢達夢數據庫有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010470229.7/1.html,轉載請聲明來源鉆瓜專利網。





