[發(fā)明專利]讀寫分離架構(gòu)業(yè)務(wù)系統(tǒng)的強(qiáng)一致性查詢方法、裝置及系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 202010627851.4 | 申請(qǐng)日: | 2020-07-02 |
| 公開(公告)號(hào): | CN111797121B | 公開(公告)日: | 2023-08-25 |
| 發(fā)明(設(shè)計(jì))人: | 王超;谷俊;陳元曦;黃浩 | 申請(qǐng)(專利權(quán))人: | 中國(guó)工商銀行股份有限公司 |
| 主分類號(hào): | G06F16/2455 | 分類號(hào): | G06F16/2455;G06F16/27 |
| 代理公司: | 北京三友知識(shí)產(chǎn)權(quán)代理有限公司 11127 | 代理人: | 孫乳筍;王濤 |
| 地址: | 100140 北*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 讀寫 分離 架構(gòu) 業(yè)務(wù) 系統(tǒng) 一致性 查詢 方法 裝置 | ||
本發(fā)明提供了一種讀寫分離架構(gòu)業(yè)務(wù)系統(tǒng)的強(qiáng)一致性查詢方法、裝置及系統(tǒng),查詢方法包括:將寫入業(yè)務(wù)系統(tǒng)主庫(kù)的待同步到備庫(kù)的聯(lián)機(jī)業(yè)務(wù)數(shù)據(jù)寫入緩存;接收用戶的查詢請(qǐng)求;根據(jù)對(duì)業(yè)務(wù)系統(tǒng)的備庫(kù)和緩存的待同步到備庫(kù)的聯(lián)機(jī)業(yè)務(wù)數(shù)據(jù)進(jìn)行查詢請(qǐng)求改寫,從而查詢生成強(qiáng)一致性的查詢結(jié)果。本發(fā)明通過緩存待同步的數(shù)據(jù),基于緩存數(shù)據(jù)實(shí)現(xiàn)由備庫(kù)提供強(qiáng)一致性的查詢結(jié)果,從而提升備庫(kù)資源利用率,突破備庫(kù)個(gè)數(shù)限制,從而實(shí)現(xiàn)通過增加備庫(kù)的數(shù)量,顯著提升整個(gè)聯(lián)機(jī)交易系統(tǒng)對(duì)大規(guī)模并發(fā)訪問的查詢響應(yīng)效率。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù),具體的講是一種讀寫分離架構(gòu)的強(qiáng)一致性查詢方法及裝置。
背景技術(shù)
當(dāng)數(shù)據(jù)庫(kù)的數(shù)據(jù)規(guī)模和并發(fā)訪問量達(dá)到一定規(guī)模,需要通過scale?out方式實(shí)現(xiàn)橫向擴(kuò)展。對(duì)于橫向擴(kuò)展后的各數(shù)據(jù)庫(kù)服務(wù)器,分為share?nothing體系和shareeverything體系兩種體系。
share?nothing體系即分布式數(shù)據(jù)庫(kù),如hbase、postgsql、hive、以及“mysql分庫(kù)分表”等,該體系能支撐海量的數(shù)據(jù),各數(shù)據(jù)庫(kù)服務(wù)器分別存儲(chǔ)數(shù)據(jù)的不同部分(分片),查詢時(shí)通過前置服務(wù)器實(shí)現(xiàn)sql改寫,將查詢分解到各分片上執(zhí)行,然后進(jìn)行合并計(jì)算(如排序、聚合等),最后將合并后結(jié)果返回。該體系中hbase、postgsql、hive一般用于超大規(guī)模olap場(chǎng)景的大數(shù)據(jù)分析,但對(duì)oltp聯(lián)機(jī)交易往往響應(yīng)速度較低;“mysql分庫(kù)分表”可以用于大規(guī)模oltp聯(lián)機(jī)交易場(chǎng)景,但其實(shí)質(zhì)是靜態(tài)并發(fā),各實(shí)例分別處理自身范圍(比如按地區(qū)分庫(kù))的交易,一般不涉及基于全局?jǐn)?shù)據(jù)(其他數(shù)據(jù)分片)的交易。
Share?everything體系即不同數(shù)據(jù)庫(kù)服務(wù)器擁有相同的數(shù)據(jù),最典型例子即“oracle?rac”和“mysql讀寫分離主備同步”。該體系的數(shù)據(jù)規(guī)模有限,其“有效”數(shù)據(jù)規(guī)模受限于單臺(tái)數(shù)據(jù)庫(kù)服務(wù)器所能管理的數(shù)據(jù)規(guī)模(其他均為副本)。但其將一部分查詢分流到備庫(kù)上執(zhí)行提升查詢效率,也無(wú)需修改sql,對(duì)用戶的友好程度高。在一般聯(lián)機(jī)訪問的場(chǎng)景中,由于不會(huì)涉及太久遠(yuǎn)的歷史數(shù)據(jù),同時(shí)也會(huì)引入按時(shí)點(diǎn)匯總機(jī)制(如月末生成余額、報(bào)表等)作為后續(xù)增量更新的基礎(chǔ),因此,Share?everything體系在oltp聯(lián)機(jī)交易場(chǎng)景中得到較多使用。Share?everything又分為物理共享和邏輯共享(同步)兩大類,Oracle?rac或oracle?exdata是物理共享的代表,雖然技術(shù)效果好,但技術(shù)準(zhǔn)入門檻較高(除底層集群軟件、共享文件系統(tǒng)等專用軟件外,還需依賴于光纖網(wǎng)絡(luò)、磁盤機(jī)等物理設(shè)施);mysql主從同步、mongodb等數(shù)據(jù)庫(kù)則是邏輯共享(同步)的代表,將數(shù)據(jù)從寫(主)庫(kù)同步到讀(備)庫(kù),物理限制較小,適用面較廣,但存在以下問題:
Share?everything體系的讀(備)庫(kù)不適用于強(qiáng)一致性查詢場(chǎng)景:由于主備庫(kù)數(shù)據(jù)間同步需要時(shí)間,因此備庫(kù)(讀庫(kù))和主庫(kù)(寫庫(kù))間存在短暫不一致,能實(shí)現(xiàn)最終一致性,但無(wú)法實(shí)現(xiàn)強(qiáng)一致性。對(duì)于聯(lián)機(jī)交易查詢系統(tǒng),用戶最佳期望是獲得強(qiáng)一致性的查詢結(jié)果,延時(shí)確認(rèn)(如訂票)或給出老狀態(tài)(如互聯(lián)網(wǎng)搜索引擎)只能是用戶無(wú)奈做出妥協(xié)的特殊場(chǎng)景。因此,一個(gè)聯(lián)機(jī)查詢系統(tǒng),應(yīng)盡可能向余額類查詢等強(qiáng)一致性場(chǎng)景看齊。
讀(備)庫(kù)資源不能得到充分利用:對(duì)于強(qiáng)一致性查詢要求,事實(shí)上只能在主庫(kù)執(zhí)行。由于用戶對(duì)聯(lián)機(jī)查詢系統(tǒng)的最佳期望是獲得強(qiáng)一致性的查詢結(jié)果,這導(dǎo)致備庫(kù)能執(zhí)行的查詢數(shù)量有限,只有可以不要求主備庫(kù)數(shù)據(jù)強(qiáng)一致性的查詢才可分流到備庫(kù),但這嚴(yán)重依賴于用戶可接受妥協(xié)的程度。因此,讀(備)庫(kù)的資源無(wú)法充分利用,查詢讀寫分離的效果不佳,“查詢和熱備并重”的期望無(wú)法實(shí)現(xiàn),退化成“熱備為主,查詢?yōu)檩o”。
寫(主)庫(kù)到讀(備)庫(kù)的同步存在瓶頸,可使用的讀(備)庫(kù)個(gè)數(shù)受限:主備庫(kù)同步間存在瓶頸,如對(duì)多個(gè)備庫(kù)進(jìn)行同步,則主庫(kù)的網(wǎng)卡將成為瓶頸,備庫(kù)的個(gè)數(shù)受限,影響了讀寫分離結(jié)構(gòu)的進(jìn)一步擴(kuò)展。相對(duì)而言,本問題被“讀(備)庫(kù)資源不能得到充分利用”這個(gè)問題所掩蓋,但如果能解決“讀(備)庫(kù)不適用于強(qiáng)一致性查詢場(chǎng)景”問題,導(dǎo)致讀(備)庫(kù)資源能被充分利用,則該問題也將成為亟待解決的問題之一。
發(fā)明內(nèi)容
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國(guó)工商銀行股份有限公司,未經(jīng)中國(guó)工商銀行股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010627851.4/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種在有線智能網(wǎng)中實(shí)現(xiàn)直播業(yè)務(wù)的方法
- 業(yè)務(wù)路由方法、業(yè)務(wù)路由器、客戶端設(shè)備及業(yè)務(wù)網(wǎng)絡(luò)系統(tǒng)
- 一種移動(dòng)業(yè)務(wù)消息路由的方法、系統(tǒng)和設(shè)備
- 業(yè)務(wù)處理方法、設(shè)備和系統(tǒng)
- 業(yè)務(wù)編排方法及裝置、業(yè)務(wù)發(fā)放方法及裝置
- 業(yè)務(wù)限流方法及業(yè)務(wù)限流裝置
- 一種信息推薦方法、裝置及存儲(chǔ)介質(zhì)
- 一種基于業(yè)務(wù)事件的頁(yè)面展示方法、裝置和電子設(shè)備
- 業(yè)務(wù)編排方法及裝置、業(yè)務(wù)發(fā)放方法及裝置
- 一種安全業(yè)務(wù)的定義、開發(fā)和執(zhí)行方法及系統(tǒng)





