[發(fā)明專利]一種數(shù)據(jù)庫(kù)讀寫方法、裝置及電子設(shè)備有效
| 申請(qǐng)?zhí)枺?/td> | 201710022710.8 | 申請(qǐng)日: | 2017-01-12 |
| 公開(公告)號(hào): | CN108304406B | 公開(公告)日: | 2022-10-25 |
| 發(fā)明(設(shè)計(jì))人: | 張廣舟;范孝劍;竇賢明;曾文旌;周正中 | 申請(qǐng)(專利權(quán))人: | 阿里云計(jì)算有限公司 |
| 主分類號(hào): | G06F16/27 | 分類號(hào): | G06F16/27 |
| 代理公司: | 北京安信方達(dá)知識(shí)產(chǎn)權(quán)代理有限公司 11262 | 代理人: | 胡艷華;栗若木 |
| 地址: | 310024 浙江省*** | 國(guó)省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)庫(kù) 讀寫 方法 裝置 電子設(shè)備 | ||
本文公開了一種數(shù)據(jù)庫(kù)讀寫方法、裝置和電子設(shè)備。所述數(shù)據(jù)庫(kù)讀寫方法包括:數(shù)據(jù)庫(kù)代理接收到預(yù)定類型的寫操作請(qǐng)求后,檢查從庫(kù)的任務(wù)處理狀態(tài);根據(jù)從庫(kù)完成讀操作任務(wù)的情況對(duì)所述預(yù)定類型的寫操作請(qǐng)求進(jìn)行處理。本文的技術(shù)方案能夠避免數(shù)據(jù)庫(kù)主庫(kù)的寫操作與從庫(kù)的讀操作產(chǎn)生沖突,改善用戶體驗(yàn)。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)通信技術(shù),尤指一種數(shù)據(jù)庫(kù)讀寫方法、裝置及電子設(shè)備。
背景技術(shù)
讀寫分離是一種常見(jiàn)的數(shù)據(jù)庫(kù)系統(tǒng)擴(kuò)展方式。如圖1所示,主數(shù)據(jù)庫(kù)負(fù)責(zé)處理含有寫操作的請(qǐng)求,從數(shù)據(jù)庫(kù)負(fù)責(zé)處理只讀請(qǐng)求。用戶的請(qǐng)求被數(shù)據(jù)庫(kù)代理(Proxy)組件識(shí)別和分配。主庫(kù)的寫操作產(chǎn)生的更新,通過(guò)事務(wù)日志,同步給從庫(kù)。從庫(kù)通過(guò)回放日志,來(lái)同步數(shù)據(jù),保持從庫(kù)中的數(shù)據(jù)與主庫(kù)的一致。
數(shù)據(jù)庫(kù)代理在分配用戶請(qǐng)求時(shí),將含有寫操作的請(qǐng)求分配給主庫(kù),只讀請(qǐng)求分配給從庫(kù)。如果寫操作請(qǐng)求是數(shù)據(jù)庫(kù)模式定義語(yǔ)言(Data Definition Language,DDL)操作或其他可能長(zhǎng)時(shí)間阻塞查詢的更新操作,由于上述寫操作在主庫(kù)執(zhí)行時(shí),對(duì)主庫(kù)的修改不斷通過(guò)日志同步到從庫(kù),所以從庫(kù)在響應(yīng)讀請(qǐng)求時(shí)可能遇到主從同步操作,兩種操作可能會(huì)涉及對(duì)同一數(shù)據(jù)塊的讀和寫,從而產(chǎn)生沖突。相關(guān)技術(shù)中,有兩種處理方法,一種方法是主從同步操作等待查詢操作完成后再執(zhí)行,這樣處理會(huì)造成主從數(shù)據(jù)同步延遲,使得從庫(kù)的查詢結(jié)果不準(zhǔn)確。另一種方法是在查詢進(jìn)行中遇到主從同步則終止查詢,這樣處理會(huì)導(dǎo)致用戶等待很長(zhǎng)時(shí)間后卻發(fā)現(xiàn)查詢沒(méi)有成功,影響用戶體驗(yàn)。
發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)庫(kù)讀寫方法、裝置及電子設(shè)備,能夠避免數(shù)據(jù)庫(kù)主庫(kù)的寫操作與從庫(kù)的讀操作產(chǎn)生沖突,改善用戶體驗(yàn)。
本申請(qǐng)采用如下技術(shù)方案:
本申請(qǐng)實(shí)施例提供了一種數(shù)據(jù)庫(kù)讀寫方法,包括:
數(shù)據(jù)庫(kù)代理接收到預(yù)定類型的寫操作請(qǐng)求后,檢查從庫(kù)的任務(wù)處理狀態(tài);
根據(jù)從庫(kù)完成讀操作任務(wù)的情況對(duì)所述預(yù)定類型的寫操作請(qǐng)求進(jìn)行處理。
可選地,所述根據(jù)從庫(kù)完成讀操作任務(wù)的情況對(duì)所述預(yù)定類型的寫操作請(qǐng)求進(jìn)行處理,包括:
在檢測(cè)到所述從庫(kù)存在未完成的讀操作任務(wù)時(shí),拒絕所述寫操作請(qǐng)求并向所述寫操作請(qǐng)求的發(fā)起方返回失敗響應(yīng),或者接受所述寫操作請(qǐng)求但進(jìn)行延遲處理。
可選地,所述接受所述寫操作請(qǐng)求但進(jìn)行延遲處理,包括:
等待所述從庫(kù)處理讀操作任務(wù),在檢測(cè)到所述從庫(kù)處理完所有的讀操作任務(wù)后,將所述預(yù)定類型的寫操作請(qǐng)求發(fā)送到主庫(kù);或者
啟動(dòng)定時(shí)器,在定時(shí)時(shí)間到之前檢測(cè)到所述從庫(kù)處理完所有的讀操作任務(wù),則將所述預(yù)定類型的寫操作請(qǐng)求發(fā)送到主庫(kù),在定時(shí)時(shí)間到時(shí)檢測(cè)到所述從庫(kù)還存在未完成的讀操作任務(wù),則向所述寫操作請(qǐng)求的發(fā)起方返回失敗響應(yīng)。
可選地,根據(jù)從庫(kù)完成讀操作任務(wù)的情況對(duì)所述預(yù)定類型的寫操作請(qǐng)求進(jìn)行處理之前,所述方法還包括:
判斷所述預(yù)定類型的寫操作請(qǐng)求的處理對(duì)象與所述從庫(kù)未完成的讀操作任務(wù)的處理對(duì)象是否為同一對(duì)象或存在關(guān)聯(lián)關(guān)系;
在判定所述預(yù)定類型的寫操作請(qǐng)求的處理對(duì)象與所述從庫(kù)未完成的讀操作任務(wù)的處理對(duì)象為同一對(duì)象或存在關(guān)聯(lián)關(guān)系時(shí),拒絕所述寫操作請(qǐng)求并向所述寫操作請(qǐng)求的發(fā)起方返回失敗響應(yīng),或者接受所述寫操作請(qǐng)求但進(jìn)行延遲處理。
可選地,所述方法還包括:
在接收到讀操作請(qǐng)求后,檢查主庫(kù)的任務(wù)處理狀態(tài);
在檢測(cè)到所述主庫(kù)存在未完成的預(yù)訂類型的寫操作任務(wù)時(shí),將所述讀操作請(qǐng)求發(fā)送到所述主庫(kù)。
可選地,在將所述讀操作請(qǐng)求發(fā)送到所述主庫(kù)之前,所述方法還包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里云計(jì)算有限公司,未經(jīng)阿里云計(jì)算有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710022710.8/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(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ù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





