更詳細的說明:
目錄
2 . 鎖的概念和協議
死鎖死鎖是指事務有與無法獲得對需求訪問的資料項的控制權而處於等待狀態,各個 事務中存在衝突操作,執行順序不對。
t1t2
lock_s(d1)
lock_s(d2)
read(d1)
read(d2)
try lock_x(d2)
try lock_x(d1)
前提:假設read(d1),read(d2)執行的時間都非常的長,並且t1需要在lock_s(d1)下,進行write(d2)才能釋放d1
避免進入死鎖
進入死鎖後,死鎖檢測與恢復
一次封鎖法
一次性將以後要用到的全部資料加鎖,即一次性將a和b都加鎖。
缺點:擴大了封鎖範圍,降低了系統併發;資料庫在不斷變化中,無法精確確定每個事物的封鎖物件。
順序封鎖法
預先對資料物件規定乙個封鎖順序,所有的事物都按這個順序執行封鎖。即規定:必須先封鎖a在封鎖b.
缺點:維護成本高;事物的封鎖請求更多要根據執行的動態結果決定。
採用fifo原則
1.定義
鎖是一種二元訊號量,用於併發控制,對事務併發訪問的資料項設定鎖。
1.共享鎖
lock_s主要用於read,多個事務,只許讀操作,t1對d1加s鎖,t2需等t1釋放後才能加x鎖
2.排它鎖
lock_x可以read,write。智慧型獨佔
一級封鎖協議,二級封鎖協議,**封鎖協議
增加階段和縮減階段,實現事務集的序列化排程,但同時事務的失敗會導致一
系列的回滾
嚴格兩階段:事務持有的所有排它鎖必須在事務提交後釋放
強兩階段:事務提交之前不得釋放任何鎖
鎖的作用範圍包括:資料庫(所有的表、索引、記錄)、表、頁、記錄
意向鎖
意向鎖就是說在屋(比如代表乙個表)門口設定乙個標識,說明屋子裡有人(比如代表某些記錄)被鎖住了。另乙個人想知道屋子
裡是否有人被鎖,不用進屋子裡乙個乙個的去查,直接看門口標識就行了。
當乙個表中的某一行被加上排他鎖後,該錶就不能再被加表鎖。資料庫程式如何知道該錶不能被加表鎖?一種方式是逐條的判斷該
表的每一條記錄是否已經有排他鎖,另一種方式是直接在表這一層級檢查表本身是否有意向鎖,不需要逐條判斷。顯然後者效率高。
例12:
----------------------------------------
t1: begin tran
select * from
table (xlock) where id=10 --意思是對id=10這一行強加排他鎖
t2: begin tran
select * from
table (tablock) --意思是要加表級鎖
假設t1先執行,t2後執行,t2執行時,欲加表鎖,為判斷是否可以加表鎖,資料庫系統要逐條判斷table表每行記錄是否已有排他鎖,
如果發現其中一行已經有排他鎖了,就不允許再加表鎖了。只是這樣逐條判斷效率太低了。
實際上,資料庫系統不是這樣工作的。當t1的select執行時,系統對表table的id=10的這一行加了排他鎖,還同時悄悄的對整個表
加了意向排他鎖(ix),當t2執行表鎖時,只需要看到這個表已經有意向排他鎖存在,就直接等待,而不需要逐條檢查資源了。
例13:
----------------------------------------
t1: begin tran
update
table
set column1='hello'
where id=1
t2: begin tran
update
table
set column1='world'
where id=1
這個例子和上面的例子實際效果相同,t1執行,系統對table同時對行家排他鎖、對頁加意向排他鎖、對錶加意向排他鎖。
定義
限制介於共享鎖和排它鎖之間,表明隨後可能會更新資料。更新鎖與共享鎖相互相容,與其他更新鎖和互斥鎖相斥。
分布式鎖 一 基礎知識
一 在討論鎖之前,我們需要先看下程序之間的兩種主要關係,同步和互斥。互斥 是指散步在不同程序之間的若干程式片段,當某個程序執行其中乙個程式片段時,其它程序就不能執行它 們之中的任一程式片段,只能等到該程序執行完這個程式片段後才可以執行。指某一資源同時只允許乙個訪問者對其進行訪問,具有唯一性和排它性。...
電腦的基礎知識 電腦的基礎知識
電腦的組成部分與其作用 一 軟體系統 軟體系統的組成分別是 作業系統 應用軟體等。其應用軟體是指特定領域開發 並為特定目的服務的一類軟體。而作業系統是位於底層硬碟與使用者之間溝通的橋梁。使用者可以通過作業系統的使用者頁面,輸入命令,實現使用者需求。二 硬體系統 硬體系統是指構成計算機的物理裝置,即由...
電腦的基礎知識 電腦的基礎知識介紹
起尾我們需相識電腦的底子形成著名我們顧到的電腦皆是由 主機 次要部分 輸出裝置 矯飾器 輸出裝置 鍵盤戰滑鼠 三年夜件形成。而主機是電腦的主體,正在主機箱中有 主機板 cpu 記憶體 電源 音卡 音效卡 網絡卡 軟盤 軟碟機 光碟機等軟體。從底子機挨開往道,電腦不妨分為五年夜部分 運算器 記憶體器 ...