溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Latch和Lock的區(qū)別

發(fā)布時(shí)間:2020-06-21 14:23:48 來源:網(wǎng)絡(luò) 閱讀:315 作者:東方之子7366 欄目:關(guān)系型數(shù)據(jù)庫(kù)

LatchOracle提供的輕量級(jí)鎖資源,他用于快速,短時(shí)間的鎖定資源,防止多個(gè)并發(fā)進(jìn)程同時(shí)修改訪問某個(gè)共享資源,他只工作在內(nèi)存中, 我們可以不大準(zhǔn)確的說,內(nèi)存中資源的鎖叫latch,數(shù)據(jù)庫(kù)對(duì)象(表,索引等)的鎖叫Lock。比如數(shù)據(jù)緩存中的某個(gè)塊要被讀取,我們會(huì)獲得這個(gè)塊的 latch,這個(gè)過程叫做pin,另外一個(gè)進(jìn)程恰好要修改這個(gè)塊,他也要pin這個(gè)塊,此時(shí)他必須等待,當(dāng)前一個(gè)進(jìn)程釋放latch后才能pin住,然后 修改,如果多個(gè)進(jìn)程同時(shí)請(qǐng)求的話,他們之間將出現(xiàn)競(jìng)爭(zhēng),沒有一個(gè)入隊(duì)機(jī)制,一旦前面進(jìn)程釋放所定,后面的進(jìn)程就蜂擁而上,沒有先來后到的概念,這個(gè)和 Lock是有本質(zhì)區(qū)別的,這一切都發(fā)生的非???,因?yàn)?/span>Latch的特點(diǎn)是快而短暫,當(dāng)然這個(gè)只是大致過程,細(xì)節(jié)部分在后面討論  先來看下LatchLock的區(qū)別,  1. Latch是對(duì)內(nèi)存數(shù)據(jù)結(jié)構(gòu)提供互斥訪問的一種機(jī)制,而Lock是以不同的模式來套取共享資源對(duì)象,各個(gè)模式間存在著兼容或排斥,從這點(diǎn)看出,Latch 的訪問,包括查詢也是互斥的,任何時(shí)候,只能有一個(gè)進(jìn)程能pin住內(nèi)存的某一塊,幸好這個(gè)過程是相當(dāng)?shù)亩虝?,否則系統(tǒng)性能將沒的保障,現(xiàn)在從9I開始,允 許多個(gè)進(jìn)程同時(shí)查詢相同的內(nèi)存塊,但性能并沒有想象中的好。  2. Latch只作用于內(nèi)存中,他只能被當(dāng)前實(shí)例訪問,而L ock作用于數(shù)據(jù)庫(kù)對(duì)象,在RAC體系中實(shí)例間允許Lock檢測(cè)與訪問  3. Latch是瞬間的占用,釋放,Lock的釋放需要等到事務(wù)正確的結(jié)束,他占用的時(shí)間長(zhǎng)短由事務(wù)大小決定  4. Latch是非入隊(duì)的,而Lock是入隊(duì)的  5. Latch不存在死鎖,而Lock中存在(死鎖在Oracle中是非常少見的)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI