[發(fā)明專利]一種數(shù)據(jù)庫(kù)系統(tǒng)的鎖操作方法及設(shè)備在審
| 申請(qǐng)?zhí)枺?/td> | 201310222370.5 | 申請(qǐng)日: | 2013-06-06 |
| 公開(公告)號(hào): | CN103336789A | 公開(公告)日: | 2013-10-02 |
| 發(fā)明(設(shè)計(jì))人: | 聶愿愿;劉輝軍;王傳廷 | 申請(qǐng)(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30 |
| 代理公司: | 廣州三環(huán)專利代理有限公司 44202 | 代理人: | 郝傳鑫;熊永強(qiáng) |
| 地址: | 518129 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)庫(kù) 系統(tǒng) 操作方法 設(shè)備 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫(kù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫(kù)系統(tǒng)的鎖操作方法及設(shè)備。
背景技術(shù)
共享集群數(shù)據(jù)庫(kù)系來(lái)主要用于聯(lián)機(jī)事務(wù)處理(On-Line?Transaction?Processing,OLTP)應(yīng)用,該應(yīng)用需要支持大量并發(fā)用戶定期添加和修改數(shù)據(jù),因此整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)需要管理大量的各種類型的鎖,常見的有頁(yè)鎖、常規(guī)鎖和元組鎖等。由于數(shù)據(jù)庫(kù)系統(tǒng)需要用于鎖來(lái)保證數(shù)據(jù)庫(kù)的各種狀態(tài)的一致性,因此與IO操作一樣,加鎖和放鎖通常也是數(shù)據(jù)庫(kù)系統(tǒng)里耗費(fèi)時(shí)間最長(zhǎng)的操作之一,進(jìn)而數(shù)據(jù)庫(kù)中的鎖子系統(tǒng)的設(shè)計(jì)會(huì)很大程度影響整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的性能。
對(duì)于鎖子系統(tǒng),除了需要管理各種各樣的鎖之外,還要實(shí)現(xiàn)對(duì)這些鎖的加鎖或放鎖操作,而每個(gè)鎖的鎖定狀態(tài)包含共享鎖和排它鎖這兩種鎖定狀態(tài),鎖的加鎖或放鎖操作就可以包括加共享鎖的操作或放共享鎖的操作,以及加排它鎖的操作或放排它鎖的操作。
目前實(shí)現(xiàn)鎖的加鎖或放鎖操作,主要通過(guò)如下方式實(shí)現(xiàn):
處理節(jié)點(diǎn)(Processing?Node,PN)向中心協(xié)調(diào)節(jié)點(diǎn)(Coordinator?Node,CN)請(qǐng)求消息,該請(qǐng)求消息包含目標(biāo)鎖的信息,該請(qǐng)求信息可以是加鎖請(qǐng)求消息或放鎖請(qǐng)求消息,若是加鎖請(qǐng)求消息,則該請(qǐng)求消息包含請(qǐng)求加共享鎖的請(qǐng)求消息或請(qǐng)求加排它鎖的請(qǐng)求消息;
CN接收到該請(qǐng)求消息后,根據(jù)上述目標(biāo)鎖的信息搜索該目標(biāo)鎖,如果是加鎖請(qǐng)求消息,且該目標(biāo)鎖可以加鎖,則對(duì)目標(biāo)鎖進(jìn)行加鎖,并向上述PN返回加鎖成功的消息;如果是加鎖請(qǐng)求消息,且該目標(biāo)鎖當(dāng)前不可以用于加鎖,則向上述PN發(fā)送用于請(qǐng)求上述PN加入該目標(biāo)鎖的等待隊(duì)列的請(qǐng)求消息。如果是放鎖請(qǐng)求消息,則對(duì)目標(biāo)鎖進(jìn)行放鎖,若該目標(biāo)鎖的等待隊(duì)列有其它PN,則從這其它PN中選擇一個(gè)PN發(fā)送通知消息實(shí)現(xiàn)目標(biāo)鎖轉(zhuǎn)移。
上述技術(shù)中,PN對(duì)任一鎖的加鎖或放鎖操作都必需通過(guò)與CN進(jìn)行消息交互才可以完成鎖的加鎖或放鎖的操作。而在實(shí)現(xiàn)應(yīng)用中,PN對(duì)鎖的加鎖或放鎖的操作的數(shù)量是很龐大的,這樣CN就需要處理大量的鎖消息,導(dǎo)致CN很容易達(dá)到性能瓶頸,從而造成數(shù)據(jù)庫(kù)系統(tǒng)的性能很低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫(kù)系統(tǒng)的鎖操作方法及設(shè)備,可以提高數(shù)據(jù)庫(kù)系統(tǒng)的性能。
本發(fā)明第一方面提供一種數(shù)據(jù)庫(kù)系統(tǒng)的鎖操作方法,所述方法包括:
第一處理節(jié)點(diǎn)獲取目標(biāo)鎖的鎖操作數(shù),所述鎖操作數(shù)用于記錄所述目標(biāo)鎖當(dāng)前在所述數(shù)據(jù)庫(kù)系統(tǒng)中各個(gè)處理節(jié)點(diǎn)上的狀態(tài),且所述目標(biāo)鎖當(dāng)前在所述數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)處理節(jié)點(diǎn)上的狀態(tài)使用所述鎖操作數(shù)中的一個(gè)或者多個(gè)數(shù)據(jù)位表示;
所述第一處理節(jié)點(diǎn)使用所述目標(biāo)鎖對(duì)目標(biāo)數(shù)據(jù)對(duì)象進(jìn)行加鎖操作,并將所述鎖操作數(shù)中用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上的狀態(tài)的數(shù)據(jù)位的值更新為用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上為加鎖狀態(tài)的值;
所述第一處理節(jié)點(diǎn)根據(jù)所述鎖操作數(shù)確認(rèn)所述加鎖操作是否成功。
在第一種可能的實(shí)現(xiàn)方式中,所述將所述鎖操作數(shù)中用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上的狀態(tài)的數(shù)據(jù)位的值更新為用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上為加鎖狀態(tài)的值,包括:
獲取使用所述目標(biāo)鎖對(duì)所述目標(biāo)數(shù)據(jù)對(duì)象進(jìn)行加鎖操作的時(shí)刻所述鎖操作數(shù)的原有值;
將所述原有值中用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上的狀態(tài)的數(shù)據(jù)位的值更新為用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上為加鎖狀態(tài)的值;
所述第一處理節(jié)點(diǎn)根據(jù)所述鎖操作數(shù)確認(rèn)所述加鎖操作是否成功,包括:
當(dāng)所述原有值滿足加鎖操作成功的條件時(shí),所述第一處理節(jié)點(diǎn)確認(rèn)所述加鎖操作成功;否則,確定所述加鎖操作失敗。
結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述第一處理節(jié)點(diǎn)使用所述目標(biāo)鎖對(duì)所述目標(biāo)數(shù)據(jù)對(duì)象進(jìn)行加鎖操作包括:
所述第一處理節(jié)點(diǎn)使用所述目標(biāo)鎖對(duì)所述目標(biāo)數(shù)據(jù)對(duì)象進(jìn)行加共享鎖的操作;
所述將所述原有值中用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上的狀態(tài)的數(shù)據(jù)位的值更新為用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上為加鎖狀態(tài)的值,包括:
將所述原有值中用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上的狀態(tài)的數(shù)據(jù)位的值加上預(yù)先設(shè)定的第一值,得到所述鎖操作數(shù)的更新值;所述更新值中用于表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上的狀態(tài)的數(shù)據(jù)位的值為表示所述目標(biāo)鎖在所述第一處理節(jié)點(diǎn)上為共享鎖狀態(tài)的值;
所述當(dāng)所述原有值滿足加鎖操作成功的條件時(shí),所述第一處理節(jié)點(diǎn)確認(rèn)所述加鎖操作成功,否則,確定所述加鎖操作失敗包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310222370.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語(yǔ)言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 數(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è)備、檢索設(shè)備和中繼設(shè)備
- 簽名設(shè)備、檢驗(yàn)設(shè)備、驗(yàn)證設(shè)備、加密設(shè)備及解密設(shè)備
- 色彩調(diào)整設(shè)備、顯示設(shè)備、打印設(shè)備、圖像處理設(shè)備
- 驅(qū)動(dòng)設(shè)備、定影設(shè)備和成像設(shè)備
- 發(fā)送設(shè)備、中繼設(shè)備和接收設(shè)備
- 定點(diǎn)設(shè)備、接口設(shè)備和顯示設(shè)備
- 傳輸設(shè)備、DP源設(shè)備、接收設(shè)備以及DP接受設(shè)備
- 設(shè)備綁定方法、設(shè)備、終端設(shè)備以及網(wǎng)絡(luò)側(cè)設(shè)備
- 設(shè)備、主設(shè)備及從設(shè)備
- 設(shè)備向設(shè)備轉(zhuǎn)發(fā)





