[發(fā)明專利]分布式事務(wù)的處理方法及裝置、計(jì)算機(jī)可存儲介質(zhì)有效
| 申請?zhí)枺?/td> | 201910991987.0 | 申請日: | 2019-10-18 |
| 公開(公告)號: | CN110765178B | 公開(公告)日: | 2021-03-05 |
| 發(fā)明(設(shè)計(jì))人: | 趙俊;張亮 | 申請(專利權(quán))人: | 京東數(shù)字科技控股有限公司 |
| 主分類號: | G06F16/2458 | 分類號: | G06F16/2458 |
| 代理公司: | 中國貿(mào)促會專利商標(biāo)事務(wù)所有限公司 11038 | 代理人: | 王莉莉 |
| 地址: | 100176 北京市大興區(qū)北京經(jīng)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 分布式 事務(wù) 處理 方法 裝置 計(jì)算機(jī) 存儲 介質(zhì) | ||
1.一種分布式事務(wù)的處理方法,包括:
接收用戶發(fā)起的業(yè)務(wù)請求,所述業(yè)務(wù)請求包括多個寫操作請求;
根據(jù)所述業(yè)務(wù)請求創(chuàng)建全局事務(wù),并為所述全局事務(wù)分配第一標(biāo)識;
將每個寫操作請求封裝為一個分支事務(wù),并為每個分支事務(wù)分配第二標(biāo)識;
對于每個分支事務(wù),從與所述每個分支事務(wù)對應(yīng)的數(shù)據(jù)庫中,查詢執(zhí)行所述每個分支事務(wù)之前的原始數(shù)據(jù),并在內(nèi)存中生成與所述原始數(shù)據(jù)對應(yīng)的第一快照數(shù)據(jù);
對于所述每個分支事務(wù),在所述內(nèi)存中,對所述第一快照數(shù)據(jù)執(zhí)行所述每個分支事務(wù),生成第二快照數(shù)據(jù);
響應(yīng)于所述用戶發(fā)起的提交所述全局事務(wù)的請求,將每個分支事務(wù)的第二快照數(shù)據(jù),寫入與每個分支事務(wù)對應(yīng)的數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的分布式事務(wù)的處理方法,其中,將所述每個分支事務(wù)的第二快照數(shù)據(jù),寫入與所述每個分支事務(wù)對應(yīng)的數(shù)據(jù)庫包括:
將所述每個分支事務(wù)的第二快照數(shù)據(jù)寫入緩沖池;
定時將所述緩沖池中的各個分支事務(wù)的第二快照數(shù)據(jù),分別寫入與每個分支事務(wù)對應(yīng)的數(shù)據(jù)庫。
3.根據(jù)權(quán)利要求1所述的分布式事務(wù)的處理方法,其中,所述業(yè)務(wù)請求還包括讀操作請求,分布式事務(wù)的處理方法還包括:
確定與所述全局事務(wù)對應(yīng)的隔離級別、和與所述讀操作請求對應(yīng)的數(shù)據(jù)主鍵的當(dāng)前版本鏈,所述當(dāng)前版本鏈存儲于所述內(nèi)存;
根據(jù)所述隔離級別,從所述當(dāng)前版本鏈中讀取與所述數(shù)據(jù)主鍵對應(yīng)的數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的分布式事務(wù)的處理方法,其中,根據(jù)所述隔離級別,從所述當(dāng)前版本鏈中讀取與所述數(shù)據(jù)主鍵對應(yīng)的數(shù)據(jù)包括:
在所述隔離級別為讀已提交的情況下,從所述當(dāng)前版本鏈中讀取處于已提交狀態(tài)的最新數(shù)據(jù);
在所述隔離級別為讀未提交的情況下,從所述當(dāng)前版本鏈中讀取處于未提交狀態(tài)的最新數(shù)據(jù);
在所述隔離級別為可重復(fù)讀或可序列化的情況下,確定所述全局事務(wù)的可見全局事務(wù)的標(biāo)識區(qū)間,從所述當(dāng)前版本鏈中讀取全局事務(wù)的標(biāo)識位于所述標(biāo)識區(qū)間內(nèi)的、且處于已提交狀態(tài)的最新數(shù)據(jù),所述標(biāo)識區(qū)間的最小值為當(dāng)前處于未提交狀態(tài)的全局事務(wù)的標(biāo)識加1,所述標(biāo)識區(qū)間的最大值為所述全局事務(wù)的標(biāo)識。
5.根據(jù)權(quán)利要求3所述的分布式事務(wù)的處理方法,還包括:
在不存在與所述讀操作請求對應(yīng)的數(shù)據(jù)主鍵的當(dāng)前版本鏈的情況下,從與所述讀操作請求對應(yīng)的數(shù)據(jù)庫中讀取與所述數(shù)據(jù)主鍵對應(yīng)的數(shù)據(jù)。
6.根據(jù)權(quán)利要求3所述的分布式事務(wù)的處理方法,還包括:
對于寫入失敗的分支事務(wù),重新執(zhí)行寫入的操作,直至失敗次數(shù)等于預(yù)設(shè)閾值;
在所述失敗次數(shù)等于所述預(yù)設(shè)閾值的情況下,回滾所述全局事務(wù)的除所述寫入失敗的分支事務(wù)以外的其他分支事務(wù)的寫入的操作。
7.根據(jù)權(quán)利要求6所述的分布式事務(wù)的處理方法,回滾所述全局事務(wù)的除所述寫入失敗的分支事務(wù)以外的其他分支事務(wù)的寫入的操作包括:
利用其他分支事務(wù)的第一快照數(shù)據(jù),寫入與所述其他分支事務(wù)對應(yīng)的數(shù)據(jù)庫;
刪除所述全局事務(wù)的各個分支事務(wù)的第一快照數(shù)據(jù)和第二快照數(shù)據(jù)。
8.根據(jù)權(quán)利要求1所述的分布式事務(wù)的處理方法,還包括:
在提交所述全局事務(wù)之后,對于每個分支事務(wù),將所述第一標(biāo)識、各個所述第二標(biāo)識、各個所述第一快照數(shù)據(jù)、和各個所述第二快照數(shù)據(jù)的對應(yīng)關(guān)系寫入到預(yù)寫日志系統(tǒng)WAL。
9.根據(jù)權(quán)利要求8所述的分布式事務(wù)的處理方法,其中,所述對應(yīng)關(guān)系通過遠(yuǎn)程字典服務(wù)Redis、并以結(jié)構(gòu)化合并樹LSM Tree的數(shù)據(jù)結(jié)構(gòu)被存儲在所述內(nèi)存中,分布式事務(wù)的處理方法還包括:
在所述Redis不可用的情況下,根據(jù)所述WAL中的對應(yīng)關(guān)系,將每個第二快照數(shù)據(jù),寫入與每個快照數(shù)據(jù)對應(yīng)的數(shù)據(jù)庫;
在所述Redis可用的情況下,刪除內(nèi)存中的所述對應(yīng)關(guān)系。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于京東數(shù)字科技控股有限公司,未經(jīng)京東數(shù)字科技控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910991987.0/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種事務(wù)處理的方法和裝置
- 分布式事務(wù)處理方法與系統(tǒng)
- 一種融合原生事務(wù)和邏輯事務(wù)的方法
- 用于聚結(jié)內(nèi)存事務(wù)的方法和系統(tǒng)
- 事務(wù)處理方法、事務(wù)參與節(jié)點(diǎn)及事務(wù)協(xié)調(diào)節(jié)點(diǎn)
- 跨進(jìn)程分布式事務(wù)控制方法及相關(guān)系統(tǒng)
- 一種分布式事務(wù)管理方法及系統(tǒng)
- 一種分布式事務(wù)處理的智能監(jiān)控方法及服務(wù)器
- 分布式事務(wù)處理方法及裝置
- 讀寫事務(wù)控制方法、系統(tǒng)、終端設(shè)備及存儲介質(zhì)





