成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

什么是CBClatch和bufferpin-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“什么是CBC latch和buffer pin”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

在南票等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需開(kāi)發(fā)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站制作,南票網(wǎng)站建設(shè)費(fèi)用合理。

CBC 全稱cache buffer chain 。要了解CBClatch和buffer pin之前,首先我們要了解的是當(dāng)一個(gè)進(jìn)程想要查詢或者修改數(shù)據(jù)時(shí),oracle都做了一些什么工作。

當(dāng)一外部服務(wù)向數(shù)據(jù)庫(kù)申請(qǐng)數(shù)據(jù)的時(shí)候,oracle內(nèi)部進(jìn)程首先在buffer cache中尋找相關(guān)數(shù)據(jù),如果buffer cache中沒(méi)有相關(guān)數(shù)據(jù)時(shí),就要從相對(duì)應(yīng)的數(shù)據(jù)文件中找到相對(duì)的block,隨后發(fā)生物理IO,將其寫(xiě)入buffer cache中的cache中。這時(shí)候,就會(huì)出現(xiàn)一個(gè)新的問(wèn)題?buffer cache中有那么多buffer,oracle怎么才能準(zhǔn)確的找到自己需要buffer呢?

hash算法中有個(gè)重要的概念 bucket,例如oracle想要讀取1號(hào)文件第23塊數(shù)據(jù)的時(shí)候,它將根據(jù)文件號(hào)和塊號(hào)計(jì)算出hash值為x,然后根據(jù)hash值x直接定位到bucketx,然后oracle便可以讀取該bucket的內(nèi)容。為了避免hash沖突,這個(gè)bucket后面一定是一個(gè)鏈表,所以在bucket中存在的一定是cbc鏈表頭。當(dāng)進(jìn)程根據(jù)文件號(hào)和塊號(hào)找到bucketx后,進(jìn)行遍歷,在每個(gè)bh中尋到ba,然后就可以準(zhǔn)確的找到相對(duì)的buffer了。

了解以上的知識(shí)后,當(dāng)一個(gè)進(jìn)程訪問(wèn)buffer時(shí),由于sga是公共內(nèi)存,所以一定要有鎖機(jī)制對(duì)sga進(jìn)行保護(hù)。上述進(jìn)程對(duì)BH,Bucket訪問(wèn)時(shí),就會(huì)有相對(duì)應(yīng)的鎖進(jìn)行保護(hù),這個(gè)latch就是CBC latch。當(dāng)甲進(jìn)程找到了bucketx后,甲進(jìn)程必須申請(qǐng)latch,才可以獲得對(duì)于BH的訪問(wèn)權(quán)。由于latch也是占用空間的,所以每個(gè)latch管理多個(gè)bucket,并不是簡(jiǎn)單的1對(duì)1的關(guān)系。

當(dāng)甲進(jìn)程獲得了這個(gè)latch之后,它就可以對(duì)BH進(jìn)行訪問(wèn)或者修改,當(dāng)對(duì)BH進(jìn)行修改時(shí),此時(shí)會(huì)在BH中加上一道buffer pin的鎖。buffer pin 常用的狀態(tài)有兩種:共享S和獨(dú)占X,簡(jiǎn)單來(lái)說(shuō),當(dāng)你進(jìn)行邏輯讀時(shí)狀態(tài)便是S,進(jìn)行DML操作時(shí),便是X狀態(tài)。當(dāng)無(wú)人訪問(wèn)的時(shí)候,buffer pin 默認(rèn)的狀態(tài)是0,當(dāng)該狀態(tài)被修改時(shí),CBC latch的使命便達(dá)成了。甲進(jìn)程這個(gè)時(shí)候就可以釋放掉該CBC latch,轉(zhuǎn)而由 buffer pin鎖陪同進(jìn)行下一步的操作。當(dāng)甲進(jìn)程對(duì)buffer操作完成之后,在釋放該buffer pin時(shí),這個(gè)時(shí)候CBC latch會(huì)陪同甲進(jìn)程走完最后的行程。

我們要了解CBC latch的兩種模式,一種獨(dú)占模式一種共享模式。因?yàn)镃BC latch保護(hù)的是BH和鏈表。如果沒(méi)有對(duì)相關(guān)的BH和鏈表進(jìn)行修改,便可以以共享模式申請(qǐng)CBC latch。如果對(duì)BH中的buffer pin狀態(tài)進(jìn)行修改的話,便會(huì)使用獨(dú)占模式。在修改好相關(guān)狀態(tài)時(shí),便會(huì)將CBC latch釋放

以上都是基于CBC latch處于獨(dú)占模式,但是當(dāng)乙進(jìn)程也要訪問(wèn)該latch負(fù)責(zé)的bucket時(shí),便會(huì)進(jìn)行排隊(duì)。這樣就會(huì)造成大量的競(jìng)爭(zhēng)。

當(dāng)CBC latch處于共享模式的時(shí)候,該latch便會(huì)一直陪甲進(jìn)程直到釋放buffer pin后,自己才會(huì)釋放。這樣便是增加了latch加載時(shí)間來(lái)解決大量競(jìng)爭(zhēng)的問(wèn)題。

對(duì)于buffer pin來(lái)說(shuō)。我們都知道讀會(huì)獲得共享的bufferpin 鎖,寫(xiě)會(huì)獲得獨(dú)占的buffer pin 鎖。對(duì)于buffer pin鎖的阻塞來(lái)說(shuō)。只要有獨(dú)占鎖的時(shí)候,便會(huì)出現(xiàn)堵塞。

例如

寫(xiě)寫(xiě):甲進(jìn)程獲得了獨(dú)占buffer pin鎖,乙進(jìn)程此時(shí)也想進(jìn)行寫(xiě)操作,這時(shí)候只能等待甲進(jìn)程釋放

寫(xiě)讀:甲進(jìn)程獲得了獨(dú)占buffer pin鎖,乙進(jìn)程此時(shí)想進(jìn)行讀操作,這時(shí)候需要等待甲進(jìn)程釋放鎖

先討論一下共享狀態(tài)下的BH:

甲進(jìn)程在CBClatch的陪同下,將BH中的buffer pin狀態(tài)修改成了S狀態(tài)。此時(shí)乙進(jìn)程也在latch的陪同下,也想訪問(wèn)該BH,但是發(fā)現(xiàn)它的狀態(tài)是S共享。乙進(jìn)程會(huì)在該BH中留下一個(gè)S狀態(tài)的buffer pin

,在該buffer pin狀態(tài)下,將buffer復(fù)制到另一個(gè)buffer中,同時(shí)生成一個(gè)新的BH指向該buffer,完成后釋放CBC latch。此時(shí)buffer中多出來(lái)一個(gè)相同的buffer,但是原buffer的BH中會(huì)多出一個(gè)status=XCUR列。克隆出的BH status是沒(méi)有值的。此時(shí)乙進(jìn)程再次獲得latch,將原BH的status改為CR,也就是CR塊;新克隆的status便為 XCUR,將buffer pin設(shè)置為X獨(dú)占,開(kāi)始修改buffer。所以這就是讀不會(huì)堵塞寫(xiě)的原因。

如果此時(shí)又有一個(gè)丙進(jìn)程想要讀該buffer,但是buffer pin是狀態(tài)是x,所以丙進(jìn)程只能等待,也就是常見(jiàn)的buffer busy waits。

“什么是CBC latch和buffer pin”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁(yè)名稱:什么是CBClatch和bufferpin-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://jinyejixie.com/article22/dhdhcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google網(wǎng)站收錄、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
上思县| 花垣县| 分宜县| 桐柏县| 腾冲县| 罗甸县| 崇阳县| 彭州市| 海盐县| 汽车| 万州区| 乡城县| 福建省| 庐江县| 合川市| 罗源县| 蓬安县| 赤城县| 辽中县| 鹿邑县| 潞西市| 元朗区| 呼和浩特市| 察哈| 青冈县| 高要市| 廉江市| 永州市| 鹤山市| 海阳市| 白山市| 兴城市| 乐都县| 绵阳市| 东山县| 睢宁县| 洛南县| 昭平县| 尚义县| 会同县| 克拉玛依市|