[發(fā)明專利]一種數(shù)據(jù)庫中動態(tài)多粒度鎖的事務(wù)沖突判決方法無效
| 申請?zhí)枺?/td> | 200910305845.0 | 申請日: | 2009-08-20 |
| 公開(公告)號: | CN101667211A | 公開(公告)日: | 2010-03-10 |
| 發(fā)明(設(shè)計)人: | 王非;盧正新;黃本雄;王芙蓉;董曉輝 | 申請(專利權(quán))人: | 華中科技大學(xué) |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京市德權(quán)律師事務(wù)所 | 代理人: | 周發(fā)軍 |
| 地址: | 430074湖北*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)庫 動態(tài) 粒度 事務(wù) 沖突 判決 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及到數(shù)據(jù)庫并發(fā)控制過程中對事務(wù)的沖突程度進行統(tǒng)計和判決。
背景技術(shù)
在基于鎖的事務(wù)并發(fā)控制技術(shù)中,數(shù)據(jù)庫經(jīng)常采用多粒度加鎖機制,可以使用庫級鎖、表級鎖、行級鎖等不同粒度的鎖。其中,粗粒度的表級鎖加鎖開銷小,但是并發(fā)能力差,容易造成事務(wù)鎖沖突;細(xì)粒度的行級鎖并發(fā)能力強,但行級鎖的數(shù)量較多,加行級鎖的開銷大。磁盤數(shù)據(jù)庫實現(xiàn)了很多不同的存儲引擎,不同的存儲引擎支持不同粒度的鎖,表級鎖的加鎖效率相對較高,行級鎖并發(fā)能力相對較高,用戶可以根據(jù)實際應(yīng)用的并發(fā)特點,選擇最合適的存儲引擎,從而達(dá)到最好的效率。這種鎖粒度的選擇是在數(shù)據(jù)庫存儲引擎的選擇做出的,一旦選擇了一種存儲引擎,就不能動態(tài)的改變了動態(tài)多粒度鎖機制正是基于這種思想設(shè)計的。這種靜態(tài)的使用多粒度鎖的機制不能有效解決具有高突發(fā)性的事務(wù)流模型。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種考慮鎖的相容特性和事務(wù)操作開銷的事務(wù)沖突判決方法。
為解決上述技術(shù)問題,本發(fā)明根據(jù)事務(wù)沖突級別,采用鎖粒度細(xì)化檢測算法動態(tài)決定在表上是使用粗粒度的表級鎖還是細(xì)粒度的行級鎖;所述事務(wù)沖突級別由如下公式計算:TC=a×Nx+b×Ns,其中,TC為事務(wù)的沖突級別,Ns為不相容共享鎖的數(shù)量,Nx是鎖等待隊列中排他鎖的數(shù)量,a、b為事務(wù)沖突權(quán)重系數(shù);
所述Ns的統(tǒng)計具體步驟如下:
a.系統(tǒng)初始化時,初始化每個表上的共享鎖計數(shù)器Ns為0;
b.當(dāng)表上一個共享鎖加鎖請求到達(dá)時,檢查表鎖控制塊上是否有加鎖請求正在等待;
c.如果有加鎖請求等待,檢查等待隊列中的最后一個加鎖請求是否是共享鎖,如果是共享鎖,Ns保持不變,如果不是共享鎖,Ns自增1;
d.如果沒有加鎖請求等待,檢查當(dāng)前授予鎖隊列是否還有其它共享鎖,如果是,Ns保持不變,如果不是Ns自增1;
e.當(dāng)一個共享鎖的解鎖請求到達(dá)時,檢查鎖的授予隊列上還有沒有其他共享鎖存在,如果存在,Ns保持不變,如果不存在,Ns自減1;
所述Nx根據(jù)應(yīng)用,可以分為插入、更新、刪除類型互斥鎖,可以在表級鎖上設(shè)置三個計數(shù)器Nins、Nupd、Ndel,分別表示插入、更新、刪除類型互斥鎖的數(shù)量,那么Nx=Nins+Nupd+Ndel,其統(tǒng)計具體步驟如下:系統(tǒng)初始化時,初始化Nins、Nupd、Ndel為0;當(dāng)有互斥鎖加鎖請求到來時,如果是插入數(shù)據(jù)型的互斥鎖,則Nins自增1,如果是更新數(shù)據(jù)型的互斥鎖,則Nupd自增1,如果是刪除數(shù)據(jù)型的互斥鎖,則Ndel自增1;當(dāng)有互斥鎖解鎖請求到來時,如果是插入數(shù)據(jù)型的互斥鎖,則Nins自減1,如果是更新數(shù)據(jù)型的互斥鎖,則Nupd自減1,如果是刪除數(shù)據(jù)型的互斥鎖,則Ndel自減1;
所述系數(shù)b為1,所述系數(shù)a是是動態(tài)變化的,是與鎖等待隊列中互斥鎖的事務(wù)類型和事務(wù)數(shù)量相關(guān)的;a=Ains×Pins+Aupd×Pupd+Adel×Pdel;在以上公式中,Ains、Aupd、Adel分別是插入、更新、刪除類型事務(wù)的復(fù)雜度參數(shù),Ains、Aupd、Adel取值2~10。Pins、Pupd、Pdel分別是互斥鎖中插入、更新、刪除類型事務(wù)的比例,Pins=Nins/(Nins+Nupd+Ndel),Pupd=Nupd/(Nins+Nupd+Ndel),Pdel=Ndel/(Nins+Nupd+Ndel);
該專利技術(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/200910305845.0/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í)行方法及裝置
- 一種事務(wù)處理的方法和裝置
- 分布式事務(wù)處理方法與系統(tǒng)
- 一種融合原生事務(wù)和邏輯事務(wù)的方法
- 用于聚結(jié)內(nèi)存事務(wù)的方法和系統(tǒng)
- 事務(wù)處理方法、事務(wù)參與節(jié)點及事務(wù)協(xié)調(diào)節(jié)點
- 跨進程分布式事務(wù)控制方法及相關(guān)系統(tǒng)
- 一種分布式事務(wù)管理方法及系統(tǒng)
- 一種分布式事務(wù)處理的智能監(jiān)控方法及服務(wù)器
- 分布式事務(wù)處理方法及裝置
- 讀寫事務(wù)控制方法、系統(tǒng)、終端設(shè)備及存儲介質(zhì)





