精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解Oracle數據庫LRU算法:LRU鏈、臟塊與臟LRU鏈

數據庫 Oracle 算法
所謂的LRU(Least recently used)算法的基本概念是當內存的剩余的可用空間不夠時,緩沖區盡可能的先保留使用者最常使用的數據,換句話說就是優先清除”較不常使用的數據”,并釋放其空間.之所以”較不常使用的數據”要用引號是因為這里判斷所謂的較不常使用的標準是人為的、不嚴格的.所謂的MRU(Most recently used)算法的意義正好和LRU算法相反。

[[286589]]

概述

所謂的LRU(Least recently used)算法的基本概念是當內存的剩余的可用空間不夠時,緩沖區盡可能的先保留使用者最常使用的數據,換句話說就是優先清除”較不常使用的數據”,并釋放其空間.之所以”較不常使用的數據”要用引號是因為這里判斷所謂的較不常使用的標準是人為的、不嚴格的.所謂的MRU(Most recently used)算法的意義正好和LRU算法相反。 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

Oracle在高速緩沖區工作機制中就用到了這個算法,下面一起看看吧~

LRU鏈:

任何緩存的大小都是有限制的,并且總不如被緩存的數據多。就像Buffer cache用來緩存數據文件,數據文件的大小遠遠超過Buffer cache。 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

因此,緩存總有被占滿的時候。當緩存中已經沒有空閑內存塊時,如果新的數據要求進入緩存,就只有從緩存中原來的數據中選出一個犧牲者,用新進入緩存的數據覆蓋這個犧牲者。這個犧牲者的選擇,是很重要的。緩存是為了數據可以重用,因此,通常應該挑選緩存中最沒有可能被重用的塊當作犧牲者。犧牲者的選擇,從CPU的L1、L2緩存,到共享池、Buffer cache池,絕大多數的緩存池都是采用著名的LRU算法,不過在Oracle中,Oracle采用了經過改進的LRU算法。具體的算法它沒有公布,不過LRU算法總的宗旨就是“最近最少”,其意義是將最后被訪問的時間距現在最遠的內存塊作為犧牲者。

比如說,現在有三個內存塊,分別是A、B、C,A被訪問過10次,最后一次訪問是在10:20,B被訪問過15次,最后一次訪問是10:18,C也被訪問10次,最后一次被訪問是在10:22。當需要選擇犧牲者時,B訪問次數最多,犧牲者肯定不是它。A、C訪問次數一樣,但A在10:20被訪問,而C在10:22被訪問,A最后被訪問的更早些,犧牲者就是A。

為了實現LRU的功能,Oracle在Buffer cache中創建了一個LRU鏈表,Oracle將Buffer cache中所有內存塊,按照訪問次數、訪問時間排序串在鏈表中。鏈表的兩頭我們分別叫做熱端與冷端, 如下圖: 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

當你第一次訪問某個塊時,如果這個塊不在Buffer cache中,Oracle要選將它讀進Buffer cache。在Buffer cache中選擇犧牲者時,Oracle將從冷端頭開始選擇,在上圖的例子中,內存塊U將是犧牲者。 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

如上圖,新塊將會被讀入U,覆蓋U原來的內容。這里,我們假設新塊是V。但是塊V不會被放在冷端頭,因為冷端頭的塊,會很快被當作犧牲者權覆蓋的。這不符合“將最后訪問時間距現在最遠的塊作為犧牲者”的宗旨。塊V是最后時間距當前時刻最近的,它不應該作為下一個犧牲者。Oracle是如何實驗LRU的,我們繼續看。 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

Oracle將LRU鏈從中間分為兩半,一半記錄熱端塊、一半記錄冷端塊。如上圖,而剛剛被訪問的塊V,如下圖: 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

如過再有新的塊進入Buffer cache,比如塊X被讀入Buffer cache,它將覆蓋T,并且會被移至塊V的前面,如下圖: 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

如果按照這面的方式繼續下去,最右邊冷端頭處的塊,一定是最后一次訪問時間距現在最遠的塊。那么,訪問次數多的塊是不會被選做犧牲者的,這一點Oracle是如何實現的?這很簡單,Oracle一般以2次為準,塊被訪問2次以上了,它就有機會進入熱端。

Oracle為內存中的每個塊都添加了一個記錄訪問次數的標志位,假設圖中每個塊的訪問次數如下: 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

如果現在又有新塊要被讀入Buffer cache,Oracle開始從冷端頭尋找犧牲者,冷端頭第一個塊S,它的訪問次數是2,那么,它不能被覆蓋,只要訪問次數大于等于2的塊,Oracle會認為它可能會被經常訪問到,Oracle要把它移到熱端,它會選擇R做為本次的犧牲者: 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈
詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

塊S會被從冷端移到熱端,并且它的訪問次數會被清零。此時,塊R就是犧牲者了,因為它的訪問次數不到兩次。 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

新塊Y覆蓋了塊R,并被移到了冷端塊開始處,它的訪問次數是1。如果塊Y再被訪問了一次,它的訪問次數變為了2: 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

雖然Y的訪問次數達到了兩次,但它不會馬上被移到熱端,它仍然留在原來的位置,隨著不斷有新塊加入,被插入到它的前面,它會不斷的被向后推移。 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

如上圖,又加入了很多的新塊,Y又被推到了冷端頭,當再有新塊進入Buffer cache時,Y不會是犧牲者,它會被移到熱端頭S的前面,Y后面的Z,它的訪問次數沒有達到2,它將會是犧牲者。

上面就是Oracle中Buffer cache管理LRU的原理。按照這種方式運作,Oracle可以把常用的塊盡量長的保持在Buffer cache中。而且,每有新塊進入Buffer cache,Oracle都會從冷端頭處,從右向左搜索犧牲塊。因為越靠近冷端,塊的訪問次數有可能越少、最后的訪問時間離現在最遠。

臟塊與臟LRU鏈:

Oracle中修改塊的規則是只對Buffer cache中的塊進行修改,并不直接修改磁盤中的塊。如果要修改的塊不在Buffer cache中,Oracle會先將它讀入Buffer cache,再在Buffer cache中進行修改。 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

當Buffer cache中的塊被修改后,Oracle會把它標記為“臟”塊。臟塊含有臟數據,臟數據就是用戶修改過的數據。Oracle會定期的將臟塊寫到磁盤中。有一個專門的后臺進程就是專門負責寫臟塊到磁盤的,它就是DBWn。我們也把DBWn寫臟塊到磁盤這個過程叫做刷新臟塊,刷新過后,臟塊就不臟了,又變成了干凈塊。其實,有一個塊A,如果Buffer cache中此塊的數據和磁盤上塊中數據不一致,那么,這個塊就是臟塊。否則,就是干凈塊。當修改完成后,因為Oracle只修改Buffer cache,因此,塊中數據和磁盤肯定不一致,這時塊就是臟塊。當塊被刷新后,塊被寫到磁盤,那么,磁盤中塊數據和Buffer cache中塊的數據又是一致的,此時,塊就又變成了干凈塊。

臟塊在被寫回磁盤前,也就是在它還是臟塊時,它是不能被覆蓋的,因為,臟塊含有用戶修改過的數據,而這些數據還沒被寫到磁盤,如果此時覆蓋了臟塊,用戶的修改結果將會丟失。 

詳解Oracle數據庫LRU算法--LRU鏈、臟塊與臟LRU鏈

設當前LRU鏈如上圖所示,其中V、L、O、P、Q是臟塊。當新的塊要進入Buffer cache時,Oracle從冷端頭開始選擇犧牲塊,Q、P和O都不能做作犧牲塊,因為它們是臟塊,N是這一次的犧牲者,新進入的塊將會覆蓋N,然后將新的塊插入到Y之前。然后呢,下一次有塊進入Buffer cache時,Oracle從冷端頭開始搜索,它還要檢查一邊Q、P和O,發現它們都不能覆蓋,再將M定為犧牲者。等等,每一次都要檢查一邊O、P、Q,這太浪費時間了,Oracle不會這么傻,Oracle有準備了一個臟LRU鏈,專門保存臟塊。當塊變臟時,塊不會馬上被移到臟LRU中,只有當Oracle從冷端頭開始,尋找犧牲者時,才會將發現的臟塊移動到臟LRU鏈中。這樣做的目的就是下次再尋找犧牲者時,可以不用再檢查這些臟塊。

總結

從LRU鏈與臟LRU鏈的原理,我們可以發現Oracle把很多工作,都留到了在LRU的冷端搜索犧牲者時。當塊的訪問次數增加的超過2時,塊在LUR鏈的位置不變;當塊變臟時,塊的LRU鏈位置也不變。只有當從LRU的冷端搜索犧牲者時,才會將發現的臟塊移到臟LRU鏈,將訪問次數超過2的,插入到熱端,這就是Oracle改進了的LRU算法。

當訪問次數大于2的塊太多,或才臟塊太多,反正這些塊都是不能覆蓋的,Oracle不得不移動它們到它們該去的位置。當碰到的這樣的塊超過LRU中總塊數的40%時,也就是說搜索了一小半LRU鏈,還是沒有發現可以覆蓋的犧牲者,Oracle就不在找了,它會喚醒DBWn刷新臟塊。在DBWn刷新期間的等待,就會被記入到free buffer waits事件中。

在尋找犧牲者過程中發現臟塊,Oracle將其移動到臟LRU鏈,但是臟LRU鏈中臟塊數目達到限制,DBWn被喚醒開始刷新臟塊,Oracle必須等待刷新臟塊完畢,才能再繼續尋找犧牲者,這其間的等待事件,也會被記入free buffer inspected。

總之,free buffer waits事件發生的主要原因就是在LRU中尋找犧牲者的時間過長。如果 這個等待事件頻繁出現,說明Buffer cache中臟塊太多了,這通常是DBWn寫刷新速度慢造成的。

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2020-05-15 17:05:51

Oracle數據庫LRU算法

2022-05-09 19:59:15

RedisLRU 算法

2021-07-15 14:29:06

LRU算法

2020-09-18 10:31:47

LRU算法數組

2022-06-17 07:49:14

緩存LRU

2023-07-06 12:39:14

RedisLRULFU

2020-02-19 19:18:02

緩存查詢速度淘汰算法

2021-09-05 18:29:58

Linux內存回收

2009-07-23 11:11:18

LRU緩存

2020-10-30 11:30:15

Least Recen

2017-04-20 09:21:44

pythonLRU算法

2015-07-29 10:31:16

Java緩存算法

2022-03-14 08:01:06

LRU算法線程池

2022-08-30 13:48:16

LinuxMySQL內存

2021-05-10 07:08:41

數據結構緩存

2021-02-22 09:23:55

LRU時間HashMap

2020-08-03 13:59:12

LRU滴滴司機CPU

2009-06-17 15:13:30

2021-12-06 19:29:17

LRU內存算法

2024-03-15 07:17:51

MySQLLRU算法緩存池
點贊
收藏

51CTO技術棧公眾號

日韩资源在线| 免费一级全黄少妇性色生活片| 欧产日产国产精品视频| 久久亚洲欧美国产精品乐播| 国产精品都在这里| 视频国产一区二区| 国产精品自在线拍| 在线观看www91| 国产一区二区三区播放| 亚洲av成人精品毛片| 久久精品一区二区三区中文字幕 | 97超碰国产精品女人人人爽| 偷拍女澡堂一区二区三区| 国产激情一区| 日韩欧美在线字幕| 黄网站色视频免费观看| 国产一级片在线播放| 国产精品一区二区久久精品爱涩| 欧美性在线视频| 青娱乐国产精品| 欧洲杯半决赛直播| 亚洲经典中文字幕| 三年中文在线观看免费大全中国| 日本在线播放一二三区| 亚洲免费三区一区二区| 日韩av电影免费在线| www.激情五月| 另类小说综合欧美亚洲| 日韩av不卡在线| 国产无遮挡又黄又爽在线观看 | 亚洲人成在线观看| 一级黄色免费视频| 欧美一级免费| 久久av中文字幕片| 日韩av免费在线| 久久精品久久国产| 综合精品一区| 日韩在线免费视频观看| 在线观看福利片| 国产精品久久久久av蜜臀| 91精品国产全国免费观看| 久久久久久蜜桃一区二区| 中文字幕在线直播| 精品久久久久久久久久ntr影视| 亚洲av综合色区| 秋霞午夜理伦电影在线观看| 日本一区免费视频| 日韩高清在线播放| 黄视频在线观看免费| 91在线精品一区二区| 国产精品二区三区| 免费观看的毛片| 国产成人免费视频精品含羞草妖精| 成人黄色网免费| 一级片一区二区三区| 奇米四色…亚洲| 国产精品欧美激情在线播放| 久久午夜免费视频| 国产日韩欧美| 日本一区二区不卡| 超碰在线免费97| 免费一级片91| 国产日韩在线一区| 999av视频| 国产ts人妖一区二区| 国产精品久久精品国产 | 精品视频久久久| 懂色av粉嫩av蜜乳av| 日韩欧美在线精品| 亚洲人成77777在线观看网| 国产激情在线免费观看| av一区二区在线播放| 亚洲人成亚洲人成在线观看| 亚洲一区二区自偷自拍| 欧美xxav| 欧美大片免费观看| 99精品中文字幕| 国产精品videosex性欧美| 亚洲国产三级网| 亚洲一区二区在线免费| 小嫩嫩12欧美| 中日韩午夜理伦电影免费 | 亚洲综合另类小说| av女优在线播放| 热色播在线视频| 欧美性受xxxx| 国产一级二级av| 日韩大片在线免费观看| 中文字幕久精品免费视频| 国产精品久久久精品四季影院| 国产中文一区| 国产福利视频一区| 国产女同91疯狂高潮互磨| 成人18视频在线播放| 就去色蜜桃综合| 黄色精品免费看| 午夜精品福利久久久| 91香蕉视频污版| 97视频一区| 国产亚洲日本欧美韩国| 黄色在线观看免费| 日产国产欧美视频一区精品| 7777精品久久久大香线蕉小说| 在线观看xxx| 最新国产精品久久精品| 欧美啪啪免费视频| 亚洲老司机网| 亚洲欧美国产另类| 久久婷婷一区二区| 久久爱www久久做| 久久久综合香蕉尹人综合网| 亚洲s色大片| 狠狠色狠狠色综合日日小说| 亚洲涩涩在线观看| 国产剧情一区| 性欧美xxxx视频在线观看| 亚洲天堂avav| 91美女片黄在线| 日b视频免费观看| www.26天天久久天堂| 亚洲精品国产suv| a级黄色片免费看| 天使萌一区二区三区免费观看| 国产成人亚洲欧美| 超碰在线网址| 欧美三级日韩三级国产三级| 无套内谢大学处破女www小说| 女主播福利一区| 国产日韩欧美在线看| 蜜桃免费在线| 狠狠躁18三区二区一区| 免费日本黄色网址| 国产精品啊v在线| 91偷拍精品一区二区三区| 中文字幕在线播放| 在线观看国产精品网站| aaaaa级少妇高潮大片免费看| 黄色成人在线网站| http;//www.99re视频| 男人的天堂在线视频免费观看| 色综合久久综合中文综合网| 六十路息与子猛烈交尾| 欧美日韩黄网站| 综合欧美国产视频二区| 精品国产青草久久久久96| 久久久午夜精品| 欧美女人性生活视频| 免费看久久久| 97热在线精品视频在线观看| 丁香花免费高清完整在线播放| 亚洲人吸女人奶水| 一本之道在线视频| 欧美在线亚洲综合一区| 亚洲qvod图片区电影| 超碰人人在线| 日韩欧美第一区| 妺妺窝人体色www在线下载| 国产99久久久国产精品潘金| 成人一级生活片| 精品精品国产三级a∨在线| 韩国三级日本三级少妇99| 手机看片一区二区| 色婷婷综合久久久久中文一区二区| 精品无码人妻一区| 日韩不卡手机在线v区| 亚洲成人蜜桃| 高清不卡一区| 久久免费视频在线观看| 涩涩视频在线观看免费| 色噜噜狠狠成人中文综合| 久久亚洲AV无码专区成人国产| 视频一区中文字幕国产| 亚洲一区二区三区加勒比| 日韩免费精品| 欧美有码在线视频| 91最新在线| 日韩免费看网站| 亚洲熟女综合色一区二区三区| 国产日韩欧美不卡在线| 久国产精品视频| 在线欧美日韩| 日本一区视频在线| 久久伊人精品| 57pao精品| 婷婷免费在线视频| 精品久久久久香蕉网| 亚洲欧美偷拍视频| 中文字幕日韩一区| 精品一区二区三区四区五区六区| 午夜一区不卡| 欧美久久久久中文字幕| 国产欧美一区二区三区不卡高清| 日本蜜桃在线观看视频| 日韩亚洲欧美中文在线| 国模无码一区二区三区| 欧美自拍偷拍一区| 精品无码人妻一区二区三区品| 久久久青草青青国产亚洲免观| 最新国产黄色网址| 国产一区导航| 欧美日韩一级在线| 精品一区毛片| 国产精品国产亚洲精品看不卡15| a√中文在线观看| 一区二区日韩精品| 少妇人妻精品一区二区三区| 欧美午夜精品久久久| 亚洲激情视频一区| 日韩毛片一二三区| 久久久久亚洲av无码a片| 波多野洁衣一区| 久久久精品高清| 久久精品国产清高在天天线| 日本一本中文字幕| 国产国产精品| 亚洲国产精品久久久久久女王| 美女视频免费精品| 97久久夜色精品国产九色| 国产精品原创视频| 欧美有码在线观看| 涩涩av在线| 久久久亚洲精选| 国产激情视频在线| 日韩中文字幕在线视频播放| 你懂的视频在线播放| 亚洲成人精品在线| 久久久久久福利| 亚洲色图在线看| 99成人在线观看| 国产农村妇女毛片精品久久麻豆| 亚洲永久无码7777kkk| 成人午夜激情片| 手机在线国产视频| 久久精品国产第一区二区三区| 熟妇人妻va精品中文字幕| 欧美激情影院| caoporen国产精品| 91成人精品在线| www 成人av com| 91精品导航| 国产亚洲自拍偷拍| 免费看久久久| 美日韩精品免费| 自拍偷拍精品| 日韩国产高清一区| 精品一区二区三区在线| 亚洲ai欧洲av| 91精品国产乱码久久久久久| 亚洲欧美日本国产有色| 日韩成人激情| 人人妻人人澡人人爽精品欧美一区| 欧美肥老太太性生活| 一区一区视频| 欧美激情精品久久久六区热门| 狠狠噜天天噜日日噜| 国内精品久久久久久久影视麻豆 | 国产精品偷伦免费视频观看的| 亚洲1234区| 国产精品久久久久久亚洲调教 | 春色成人在线视频| 永久免费精品视频| 久久精品国产第一区二区三区最新章节 | 日韩精品乱码av一区二区| 欧美 日韩 国产 激情| 蜜臀av一区二区在线观看| 亚洲一级片av| 成人午夜伦理影院| 中文字幕在线看高清电影| 国产女同互慰高潮91漫画| 国产麻豆视频在线观看| 亚洲一区二三区| 中文字幕精品三级久久久| 欧美综合一区二区三区| 国产精品系列视频| 亚洲成人av资源网| 国产高清一级毛片在线不卡| 久久精品免费电影| av小说在线播放| 国产精品成熟老女人| 久久九九精品视频| 久久久精品有限公司| 日韩成人激情| 黄色一级片在线看| 奇米一区二区三区| 婷婷五月精品中文字幕| 亚洲国产精品黑人久久久| 疯狂试爱三2浴室激情视频| 黄网动漫久久久| 91亚洲精品国偷拍自产在线观看 | 国产在线观看精品一区| 久久久精品一区| 涩涩视频在线播放| 91视频免费在线| 要久久爱电视剧全集完整观看| 9999在线观看| 国产欧美成人| 欧美激情第四页| 国产亚洲精品aa午夜观看| 欧美黄色一级网站| 欧美三区免费完整视频在线观看| 亚洲国产成人精品一区二区三区| 一本色道久久综合亚洲精品小说| a级在线观看| 国产精品日韩一区| 国产精品白丝av嫩草影院| 在线视频亚洲自拍| 午夜亚洲一区| 国产综合内射日韩久| 国产精品福利一区| 久操视频在线免费观看| 精品国产乱码久久久久久1区2区| av中文字幕在线| 欧美综合在线第二页| 91成人噜噜噜在线播放| 熟妇熟女乱妇乱女网站| 日本特黄久久久高潮| 亚洲精品女人久久久| 亚洲一区二区三区美女| av加勒比在线| www.亚洲男人天堂| 四虎4545www精品视频| 国产亚洲精品美女久久久m| 欧美a级在线| 中文字幕12页| 中文字幕在线一区| 亚洲无码精品国产| 国产一区二区欧美日韩| 精品91久久| 久久综合久久久| 午夜亚洲视频| 波多野结衣a v在线| 欧美特级www| 免费国产在线视频| 欧美有码在线视频| 免费毛片在线不卡| 日韩 欧美 高清| 国产亚洲福利社区一区| 亚洲成熟少妇视频在线观看| 亚洲免费视频观看| 手机看片久久| 欧美下载看逼逼| 视频精品一区二区| 国产熟女一区二区| 欧美日韩美少妇 | 午夜精品在线视频| 国产精品xxx在线观看| 波多野结衣之无限发射| 91麻豆免费观看| 国产免费一区二区三区四区五区| 亚洲欧美综合另类中字| 欧洲av不卡| 亚洲欧美成人一区| 精品中文字幕一区二区| 欧美黑人性猛交xxx| 欧美一级在线免费| 动漫一区二区| 久久精品欧美| 日韩电影网1区2区| 在线视频这里只有精品| 日韩视频免费直播| a毛片不卡免费看片| 欧美xxxx黑人又粗又长精品| 久久综合激情| 北条麻妃在线观看视频| 欧美一级黄色片| 日本免费一区二区六区| 日韩在线电影一区| 国产麻豆一精品一av一免费| 国产无码精品视频| 亚洲视频专区在线| 欧美亚洲黄色| 亚洲人成无码网站久久99热国产| 久久久久久亚洲综合| 中文字幕欧美人妻精品一区蜜臀| 欧美插天视频在线播放| 精品无人区一区二区| 国产视频一区二区三区在线播放 | 午夜精品一区二| 久久久国产视频91| 蜜桃一区av| 污片在线免费看| 亚洲一卡二卡三卡四卡无卡久久| 亚洲av成人无码久久精品老人 | 久久91亚洲人成电影网站| 久久午夜影院| 免费一区二区三区在线观看 | 久久精品电影一区二区| 激情小说一区| 久久国产激情视频| 午夜精品久久久久久久蜜桃app| 成人性生交大片免费看午夜| 亚洲自拍偷拍区| 视频一区视频二区中文| 久草网在线观看| 在线播放国产一区二区三区| 中文无码日韩欧| 婷婷免费在线观看| 欧美色另类天堂2015| 91在线中文| 五月天丁香综合久久国产|