[發明專利]事務執行方法、裝置、計算設備及存儲介質有效
| 申請號: | 202111306227.5 | 申請日: | 2021-11-05 |
| 公開(公告)號: | CN115113989B | 公開(公告)日: | 2023-05-26 |
| 發明(設計)人: | 熊亮春;潘安群;雷海林;劉暢 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F16/22 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 李文靜 |
| 地址: | 518057 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 事務 執行 方法 裝置 計算 設備 存儲 介質 | ||
1.一種事務執行方法,其特征在于,所述方法包括:
響應于數據定義語言DDL事務,在DDL事務所操作的數據對象與數據表中的數據列相關聯的情況下,確定操作的操作類型;
在解析所述DDL事務所涉及的每一項操作的操作類型時,對操作所涉及的每一個數據對象生成對應的操作解析信息;將所述DDL事務的各項操作所涉及的各個數據對象的所述操作解析信息,存儲到操作解析信息集合中;在所述數據表的DDL操作表中,為所述操作解析信息集合中的每一個所述操作解析信息創建一條對應的DDL操作記錄;所述DDL操作表用于建立所述數據表中數據記錄的不同版本之間的映射關系;所述DDL操作表中的每條所述DDL操作記錄都會記載所操作的所述數據對象的版本號,而所述數據表中每條所述數據記錄自身存儲格式中會攜帶一個記錄版本號,通過在所述DDL操作表中找到位于所述記錄版本號到最新版本號之間的所述DDL操作記錄,建立出數據記錄的存儲版本到最新版本之間的映射關系;所述存儲版本是指在當前時刻下所述數據表中存儲的數據記錄對應的版本;
在確定所述DDL事務所操作的所述數據對象所關聯的所述數據表后,訪問所述數據表的數據字典,在所述數據字典中對所述DDL事務所操作的所述數據對象的定義執行對應的操作,并在對所述數據對象的定義執行所述操作完畢后,提交所述DDL事務;所述數據字典是數據庫中用于存放所述數據庫中的所述數據對象的定義的地方;
在提交所述DDL事務后,對所述數據列所關聯的索引,啟動索引修改事務;
響應于所述索引修改事務,對所述數據表中存儲的每一條數據記錄,若所述數據記錄并非最新版本,查詢所述數據表的所述DDL操作表,得到所述數據記錄從當前版本到所述最新版本之間發生的至少一條DDL操作記錄;基于所述至少一條DDL操作記錄,生成從所述當前版本到所述最新版本的字段映射關系;基于所述字段映射關系,對所述數據記錄的各個字段數據進行映射操作,得到所述最新版本的數據記錄,將所述最新版本的所述數據記錄寫回所述數據表;在所述數據記錄所關聯的索引記錄中,寫入所述最新版本的數據記錄中與所述索引對應的字段數據,以覆蓋已有的同一字段數據;將所述數據表和所述索引均標記為發布狀態;其中,所述映射操作包括以下至少一項:若所述DDL操作記錄對應的操作類型包括新增列,向新增的數據列對應的字段數據中填充插入值或默認值;若所述DDL操作記錄對應的操作類型包括刪除列,跳過被刪除的數據列對應的字段數據;若所述DDL操作記錄對應的操作類型包括修改列位置,將被修改位置的數據列對應的字段數據從原始位置移動至目標位置;若所述DDL操作記錄對應的操作類型包括修改列類型,對被修改列類型的數據列對應的字段數據的數據類型從原始類型轉換為目標類型;
在所述數據表的所述數據字典中,對所述數據列和所述索引的定義執行所述索引修改事務所指示的修改;將所述DDL事務的跟蹤信息置為已完成狀態;所述跟蹤信息用于跟蹤所述DDL事務的執行情況,對所述DDL事務在異常中斷后進行恢復執行;
對所述數據表中存儲的每一條數據記錄,若所述數據記錄并非最新版本,且所述數據列的列類型轉換存在沖突的情況下,獲取所述DDL事務的異常處理參數;在所述異常處理參數指向異常處理函數時,基于所述操作類型下掛載的所述異常處理函數,對所述數據記錄進行轉換;在所述異常處理參數不指向異常處理函數,或所述異常處理函數對所述數據記錄轉換失敗時,暫停所述索引修改事務,向觸發所述DDL事務的設備返回發生沖突的所述數據記錄。
2.根據權利要求1所述的方法,其特征在于,所述為所述操作解析信息集合中的每一個所述操作解析信息創建一條對應的DDL操作記錄包括:
對每一個數據列的所述操作解析信息,在所述操作解析信息對應的操作類型為增加列的情況下,生成增加所述數據列的DDL操作記錄;或,在所述操作解析信息對應的操作類型為刪除列的情況下,生成刪除所述數據列的DDL操作記錄。
3.根據權利要求1所述的方法,其特征在于,所述為所述操作解析信息集合中的每一個所述操作解析信息創建一條對應的DDL操作記錄包括:
對每一個數據列的所述操作解析信息,在所述操作解析信息對應的操作類型為修改列的情況下,若所述數據列不具有關聯的索引或者所述操作類型不涉及修改所述數據列的列類型,生成修改所述數據列的DDL操作記錄。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111306227.5/1.html,轉載請聲明來源鉆瓜專利網。





