[發(fā)明專(zhuān)利]分布式數(shù)據(jù)庫(kù)系統(tǒng)的事務(wù)處理方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201410654868.3 | 申請(qǐng)日: | 2014-11-17 |
| 公開(kāi)(公告)號(hào): | CN105608086B | 公開(kāi)(公告)日: | 2021-07-27 |
| 發(fā)明(設(shè)計(jì))人: | 代利堅(jiān);賈新華;左莊太;白濤;陳河堆;鄒海麗;陳小強(qiáng);彭繼平;劉文濤;鄧瓊;陳建鋒 | 申請(qǐng)(專(zhuān)利權(quán))人: | 中興通訊股份有限公司;中信銀行股份有限公司 |
| 主分類(lèi)號(hào): | G06F16/27 | 分類(lèi)號(hào): | G06F16/27;G06F16/24 |
| 代理公司: | 深圳鼎合誠(chéng)知識(shí)產(chǎn)權(quán)代理有限公司 44281 | 代理人: | 薛祥輝 |
| 地址: | 518057 廣東省深*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 分布式 數(shù)據(jù)庫(kù) 系統(tǒng) 事務(wù)處理 方法 裝置 | ||
1.一種分布式數(shù)據(jù)庫(kù)系統(tǒng)的事務(wù)處理方法,其特征在于,包括:
全局事務(wù)處理中心服務(wù)器接收用戶(hù)提交的事務(wù)結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL語(yǔ)句,并根據(jù)所述SQL語(yǔ)句生成SQL語(yǔ)法樹(shù);
所述全局事務(wù)處理中心服務(wù)器遍歷所述SQL語(yǔ)法樹(shù),根據(jù)分布式數(shù)據(jù)庫(kù)系統(tǒng)的分布情況,生成能夠在所述分布式數(shù)據(jù)庫(kù)系統(tǒng)各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行的SQL執(zhí)行樹(shù);
所述全局事務(wù)處理中心服務(wù)器申請(qǐng)與所述SQL執(zhí)行樹(shù)對(duì)應(yīng)的全局事務(wù)標(biāo)識(shí)GTID,并遍歷所述SQL執(zhí)行樹(shù),將所述SQL執(zhí)行樹(shù)的執(zhí)行節(jié)點(diǎn)上的SQL語(yǔ)句下發(fā)到相應(yīng)的數(shù)據(jù)庫(kù)節(jié)點(diǎn)上執(zhí)行,其中,所述GTID攜帶在所述SQL語(yǔ)句中;
所述全局事務(wù)處理中心服務(wù)器接收?qǐng)?zhí)行結(jié)果,根據(jù)所述執(zhí)行結(jié)果遍歷所述SQL執(zhí)行樹(shù),在確定SQL執(zhí)行樹(shù)上的SQL語(yǔ)句都執(zhí)行成功且完畢后,將所述執(zhí)行結(jié)果返回給用戶(hù),并釋放所述GTID;
在各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行所述SQL語(yǔ)句時(shí),在所述數(shù)據(jù)庫(kù)節(jié)點(diǎn)存儲(chǔ)的SQL語(yǔ)句的操作數(shù)據(jù)的隱含列中存儲(chǔ)相應(yīng)的GTID,并將SQL語(yǔ)句的操作數(shù)據(jù)的前后值寫(xiě)入到各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)日志;
所述方法進(jìn)一步包括分布式回滾操作:所述全局事務(wù)處理中心服務(wù)器在部分?jǐn)?shù)據(jù)庫(kù)節(jié)點(diǎn)提交的執(zhí)行結(jié)果為執(zhí)行SQL語(yǔ)句成功,部分?jǐn)?shù)據(jù)庫(kù)節(jié)點(diǎn)提交的執(zhí)行結(jié)果為執(zhí)行SQL語(yǔ)句失敗的情況下,獲取執(zhí)行SQL語(yǔ)句成功的數(shù)據(jù)庫(kù)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)日志,通過(guò)所述GTID從所述數(shù)據(jù)庫(kù)日志中獲取已執(zhí)行成功的SQL語(yǔ)句以及操作數(shù)據(jù)的前后值,根據(jù)已執(zhí)行成功的SQL語(yǔ)句以及操作數(shù)據(jù)的前后值構(gòu)造反向SQL語(yǔ)句,對(duì)已執(zhí)行成功的SQL語(yǔ)句進(jìn)行回滾操作,將已執(zhí)行成功的SQL語(yǔ)句回滾到與執(zhí)行失敗的SQL語(yǔ)句一致的狀態(tài)。
2.如權(quán)利要求1所述的方法,其特征在于,全局事務(wù)處理中心服務(wù)器接收用戶(hù)提交的事務(wù)結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL語(yǔ)句,并根據(jù)所述SQL語(yǔ)句生成SQL語(yǔ)法樹(shù)具體包括:
所述全局事務(wù)處理中心服務(wù)器接收用戶(hù)提交的事務(wù)SQL語(yǔ)句;
所述全局事務(wù)處理中心服務(wù)器根據(jù)SQL語(yǔ)法規(guī)則、以及面向分布式的應(yīng)用規(guī)則制定SQL語(yǔ)法分析器,通過(guò)所述SQL語(yǔ)法分析器分析所述事務(wù)SQL語(yǔ)句,生成SQL語(yǔ)法樹(shù),并根據(jù)所述SQL語(yǔ)法樹(shù)重構(gòu)所需要的SQL語(yǔ)句,其中,所述SQL語(yǔ)法樹(shù)包括SQL語(yǔ)句節(jié)點(diǎn)和SQL語(yǔ)句操作節(jié)點(diǎn),如果兩個(gè)SQL語(yǔ)句節(jié)點(diǎn)之間是主從關(guān)系,則通過(guò)SQL語(yǔ)句操作節(jié)點(diǎn)對(duì)兩個(gè)SQL語(yǔ)句節(jié)點(diǎn)進(jìn)行連接。
3.如權(quán)利要求1所述的方法,其特征在于,所述全局事務(wù)處理中心服務(wù)器遍歷所述SQL語(yǔ)法樹(shù),根據(jù)分布式數(shù)據(jù)庫(kù)系統(tǒng)的分布情況,生成能夠在所述分布式數(shù)據(jù)庫(kù)系統(tǒng)各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行的SQL執(zhí)行樹(shù)具體包括:
所述全局事務(wù)處理中心服務(wù)器從根節(jié)點(diǎn)深度遍歷所述SQL語(yǔ)法樹(shù),在遍歷到葉子節(jié)點(diǎn)后,開(kāi)始進(jìn)行歸并操作,將能放在一個(gè)SQL語(yǔ)句中下發(fā)到數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行的父子關(guān)系的節(jié)點(diǎn)和兄弟關(guān)系的節(jié)點(diǎn)合并成一個(gè)執(zhí)行節(jié)點(diǎn),在當(dāng)前節(jié)點(diǎn)無(wú)法合并時(shí),將當(dāng)前節(jié)點(diǎn)分布下發(fā)到SQL執(zhí)行樹(shù)的執(zhí)行節(jié)點(diǎn)上,最后進(jìn)行匯總操作,生成能夠在所述分布式數(shù)據(jù)庫(kù)系統(tǒng)各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行的SQL執(zhí)行樹(shù)。
4.如權(quán)利要求1所述的方法,其特征在于,
在生成能夠在所述分布式數(shù)據(jù)庫(kù)系統(tǒng)各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行的SQL執(zhí)行樹(shù)時(shí),所述方法進(jìn)一步包括:
在所述SQL執(zhí)行樹(shù)上的SQL語(yǔ)句所涉及到的數(shù)據(jù)均分布在同一數(shù)據(jù)庫(kù)節(jié)點(diǎn)時(shí),將該SQL語(yǔ)句標(biāo)識(shí)為直接下發(fā)到對(duì)應(yīng)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行;在所述SQL執(zhí)行樹(shù)上的SQL語(yǔ)句涉及到的數(shù)據(jù)分布在不同數(shù)據(jù)庫(kù)節(jié)點(diǎn)時(shí),將該SQL語(yǔ)句標(biāo)識(shí)為需要進(jìn)行匯總操作,并將所述SQL語(yǔ)句分解成的子SQL語(yǔ)句標(biāo)識(shí)為直接下發(fā)到相應(yīng)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行;
將所述SQL執(zhí)行樹(shù)上的SQL語(yǔ)句下發(fā)到相應(yīng)的數(shù)據(jù)庫(kù)節(jié)點(diǎn)上執(zhí)行具體包括:
在SQL語(yǔ)句標(biāo)識(shí)為直接下發(fā)的對(duì)應(yīng)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行時(shí),所述全局事務(wù)處理中心服務(wù)器直接將該SQL語(yǔ)句下發(fā)到相應(yīng)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行;
在SQL語(yǔ)句分解成的子SQL語(yǔ)句標(biāo)識(shí)為直接下發(fā)到相應(yīng)數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行,該SQL語(yǔ)句標(biāo)識(shí)為需要進(jìn)行匯總操作時(shí),所述全局事務(wù)處理中心服務(wù)器將該SQL語(yǔ)句的子SQL語(yǔ)句下發(fā)到各數(shù)據(jù)庫(kù)節(jié)點(diǎn)執(zhí)行后,接收各數(shù)據(jù)庫(kù)節(jié)點(diǎn)反饋的執(zhí)行結(jié)果并對(duì)所述執(zhí)行結(jié)果進(jìn)行數(shù)據(jù)匯總操作。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于中興通訊股份有限公司;中信銀行股份有限公司,未經(jīng)中興通訊股份有限公司;中信銀行股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410654868.3/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置
- 識(shí)別和驗(yàn)證移動(dòng)電子事務(wù)處理裝置的持有者的方法和裝置
- 緩沖寫(xiě)入和存儲(chǔ)頁(yè)面控制
- 在事務(wù)處理碼內(nèi)對(duì)存儲(chǔ)器分配和解除分配的系統(tǒng)和方法
- 在事務(wù)處理碼內(nèi)對(duì)存儲(chǔ)器分配和解除分配的系統(tǒng)和方法
- 事務(wù)處理的記錄方法及裝置
- 基于客戶(hù)信息控制系統(tǒng)的異構(gòu)長(zhǎng)事務(wù)處理系統(tǒng)及方法
- 一種自動(dòng)實(shí)現(xiàn)分布式事務(wù)處理的方法、系統(tǒng)及相關(guān)裝置
- 事務(wù)處理方法、系統(tǒng)及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種事務(wù)處理方法及應(yīng)用服務(wù)中間件
- 事務(wù)請(qǐng)求處理方法及裝置





