[發(fā)明專利]一種分布式數(shù)據(jù)庫系統(tǒng)中的并發(fā)訪問控制方法有效
| 申請?zhí)枺?/td> | 202010007610.X | 申請日: | 2020-01-04 |
| 公開(公告)號: | CN111259071B | 公開(公告)日: | 2022-08-05 |
| 發(fā)明(設(shè)計)人: | 徐昶;岑躍峰;馬偉鋒;岑崗;張宇來;程志剛;盧方 | 申請(專利權(quán))人: | 浙江科技學(xué)院 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F9/52 |
| 代理公司: | 杭州君度專利代理事務(wù)所(特殊普通合伙) 33240 | 代理人: | 朱月芬 |
| 地址: | 310023 浙*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 數(shù)據(jù)庫 系統(tǒng) 中的 并發(fā) 訪問 控制 方法 | ||
本發(fā)明公開了一種分布式數(shù)據(jù)庫系統(tǒng)中的并發(fā)訪問控制方法。本發(fā)明使用客戶端的時間戳加硬件唯一標(biāo)識來生成事務(wù)號。當(dāng)只讀事務(wù)第一次訪問某行數(shù)據(jù)時,讀取該行數(shù)據(jù)最新提交版本,并將該版本事務(wù)號記錄在客戶端,為重復(fù)訪問提供憑據(jù)。當(dāng)讀寫事務(wù)讀取某行數(shù)據(jù)時,讀取該行數(shù)據(jù)最新提交版本,并在該行所在節(jié)點的內(nèi)存中增加該行的讀鎖。當(dāng)讀寫事務(wù)更新某行數(shù)據(jù)時,將行的當(dāng)前版本的事務(wù)號和更新的內(nèi)容緩存在客戶端。事務(wù)提交時,再將這次更新的內(nèi)容發(fā)到對應(yīng)節(jié)點,并根據(jù)該行的當(dāng)前狀態(tài)來決定更新是否可行,當(dāng)需要等待或回滾時,根據(jù)事務(wù)號的次序關(guān)系使其中一個事務(wù)回滾。本發(fā)明避免了在分布式環(huán)境下進(jìn)行代價極高的死鎖檢測,獲得高并發(fā)性和高一致性。
技術(shù)領(lǐng)域
本發(fā)明屬于信息領(lǐng)域,具體為一種分布式數(shù)據(jù)庫系統(tǒng)中的并發(fā)訪問控制方法。
背景技術(shù)
由于芯片制造工藝已經(jīng)接近極限,近年來計算機(jī)中央處理器的主頻率已經(jīng)不再提高,而互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等技術(shù)的快速發(fā)展又催生了海量數(shù)據(jù)處理的業(yè)務(wù)需求,因此數(shù)據(jù)處理技術(shù)開始向大規(guī)模分布式處理方向發(fā)展。當(dāng)前的分布式數(shù)據(jù)庫軟件往往架構(gòu)在成百上千臺計算機(jī)上,通過局域網(wǎng)或廣域網(wǎng)通信進(jìn)行協(xié)作處理數(shù)據(jù),并作為一個整體對外提供服務(wù),讓上層應(yīng)用像訪問單機(jī)數(shù)據(jù)庫一樣訪問系統(tǒng)。
在分布式數(shù)據(jù)庫中,最難處理的問題是并發(fā)訪問控制,也就是在有很多事務(wù)同時訪問數(shù)據(jù)庫時,如何保證數(shù)據(jù)訪問的正確性。在數(shù)據(jù)庫理論中,通常一個可串行化序列被認(rèn)為是可接受的合法序列,而為了保證并發(fā)事務(wù)的訪問序列可串行化,傳統(tǒng)的關(guān)系數(shù)據(jù)庫采用二階段鎖協(xié)議來保證事務(wù)的隔離。簡單來說,當(dāng)事務(wù)讀取數(shù)據(jù)時對該行數(shù)據(jù)加讀鎖,當(dāng)事務(wù)更新數(shù)據(jù)時對該行數(shù)據(jù)加寫鎖,事務(wù)在生命周期內(nèi)一直持有訪問行上的鎖,只有當(dāng)事務(wù)提交或回退時才將鎖釋放。
然而,在分布式環(huán)境中,二階段鎖協(xié)議難以被直接應(yīng)用,其原因在于,如果將加鎖信息集中在某一個計算機(jī)節(jié)點上處理,則所有的訪問會段集中在這個節(jié)點上,使得系統(tǒng)喪失了延展性和高可靠性;而如果將鎖信息和數(shù)據(jù)一樣分布在各個節(jié)點上,則死鎖檢測的代價大到無法忍受,因為死鎖檢測必須在網(wǎng)絡(luò)通信環(huán)境下檢查是否有等待成環(huán)。
在現(xiàn)今的分布式環(huán)境中,數(shù)據(jù)處理系統(tǒng)往往采取一種樂觀的多版本協(xié)議。每個事務(wù)按照提交順序被賦予一個遞增的時間戳,當(dāng)事務(wù)更新數(shù)據(jù)庫的時候,其更新的行被打上這個時間戳,而事務(wù)讀取的是小于自己開始時間戳之前的最大時間戳版本的數(shù)據(jù)。事務(wù)的更新在提交階段才對相應(yīng)行加上寫鎖,并在加不上寫鎖時宣告失敗以避免死鎖。這種并發(fā)控制方法可以避免加讀鎖,保證了只讀事務(wù)的正確運行,提高了系統(tǒng)并發(fā)度,同時避免了死鎖檢測。但其問題在于:1)一個遞增的時間戳同樣會造成系統(tǒng)延展性的瓶頸,因為所有的事務(wù)都必須在開始和提交時同步訪問這個時間戳生成器;2)當(dāng)兩個事務(wù)彼此更新產(chǎn)生死鎖條件,即產(chǎn)生如下的序列時:
理論上只需要事務(wù)一和事務(wù)二中的一個回滾,另一個事務(wù)即可以執(zhí)行成功,但樂觀并發(fā)協(xié)議卻有可能造成兩個事務(wù)互相加不上寫鎖而同時回滾,使系統(tǒng)的錯誤率上升。3)在發(fā)生寫偏斜時,即發(fā)生以下的序列時,在多版本并發(fā)控制方法下是可以通過的,但卻并不是一個合法的可串行化序列:
此時事務(wù)一和事務(wù)二的訪問序列彼此依賴,無法被串行化,破壞了數(shù)據(jù)庫的一致性要求。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種分布式數(shù)據(jù)庫系統(tǒng)中的并發(fā)訪問控制方法,將本方法應(yīng)用到分布式數(shù)據(jù)庫環(huán)境下,即可以實現(xiàn)高并發(fā)的訪問性能,同時還可以避免寫偏斜,保證數(shù)據(jù)庫系統(tǒng)的高一致性。
為了達(dá)到上述目標(biāo),本發(fā)明通過以下技術(shù)方案進(jìn)行實現(xiàn):
一種分布式數(shù)據(jù)庫系統(tǒng)中的并發(fā)訪問控制方法,該方法使用客戶端的時間戳加硬件唯一標(biāo)識來生成事務(wù)號,事務(wù)號不需要在節(jié)點間進(jìn)行同步即可以保持全局唯一性,且具有一定程度上的時序性。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浙江科技學(xué)院,未經(jīng)浙江科技學(xué)院許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010007610.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





