實(shí)時(shí)數(shù)據(jù)庫緩沖區(qū)管理(數(shù)據(jù)庫)
時(shí)間:2022-11-13 10:30:01 | 來源:信息時(shí)代
時(shí)間:2022-11-13 10:30:01 來源:信息時(shí)代
實(shí)時(shí)數(shù)據(jù)庫緩沖區(qū)管理 : 支持實(shí)時(shí)事務(wù)執(zhí)行所需內(nèi)存空間的管理,包括事務(wù)的工作(數(shù)據(jù))緩沖區(qū)、日志記錄緩沖區(qū)、I/O緩沖區(qū)等。它極大地影響著RTDB的系統(tǒng)性能和事務(wù)定時(shí)限制的滿足。當(dāng)接納一個(gè)事務(wù)時(shí),就要為其分配空間;若當(dāng)前無充足的空緩沖區(qū),則選擇一些已占區(qū)被替換出去,以騰出空間。下面是適合于實(shí)時(shí)事務(wù)的基于優(yōu)先級的緩沖區(qū)管理策略。
1. P-LRU(priority-least recently used)策略
它將緩沖區(qū)按其占有者事務(wù)的每一優(yōu)先級組成一個(gè)隊(duì),隊(duì)內(nèi)按“最近被使用”的早晚排序,所有空的緩沖區(qū)組成一個(gè)隊(duì),如圖1所示。按P-LRU策略,系統(tǒng)跟蹤所有活動事務(wù)當(dāng)前使用的頁面(總數(shù))。當(dāng)一事務(wù)到達(dá)系統(tǒng)時(shí),若有足夠的空區(qū),則接納,將分給它的頁面記入相應(yīng)的優(yōu)先級隊(duì)列,標(biāo)上“使用時(shí)標(biāo)”(初始為0的單調(diào)遞增整數(shù)); 否則,若有優(yōu)先級比它低的活動事務(wù),則“掛起”其中一(或多)個(gè)事務(wù),以替換出足夠的它(們)的緩沖區(qū)給新到達(dá)的事務(wù);若無優(yōu)先級比它低的活動事務(wù)可讓出緩沖區(qū),則它只有等待。當(dāng)有事務(wù)完成或者夭折從而回收它所占有的頁面時(shí),則重激活“掛起”的事務(wù)或接納等待的事務(wù)。
圖1 P-LRU緩沖池組織的例子
如何選擇替換的頁面,首先考慮優(yōu)先級低的隊(duì)列,而在一隊(duì)中則先考慮“最近使用時(shí)標(biāo)”(見圖1)最小者。若單純地考慮這兩個(gè)因素,則各隊(duì)中最可能被替換的頁面集始終為各隊(duì)的使用時(shí)標(biāo)最小者的集合P
LRU,如圖1中P
LRU={P
1,…,P
16,P
17}。這不一定合理,它過于偏向優(yōu)先級而未考慮頁面使用時(shí)標(biāo)的全局性,因?yàn)檫@些使用時(shí)標(biāo)的最小是局限于各隊(duì)的,并非全局的,圖1中P
1的使用時(shí)標(biāo)在本隊(duì)中是最小的,可它比P
rm-1隊(duì)的最大者P
18的還大。為此,應(yīng)設(shè)立一個(gè)“替換窗口”WR,實(shí)際就是一個(gè)閾值參數(shù),它可動態(tài)調(diào)整,改變它則在進(jìn)行替換時(shí)便改變了優(yōu)先級與使用時(shí)標(biāo)的相對重要程度。
例如,在圖1中,設(shè)當(dāng)前用來作頁面存取的時(shí)標(biāo)值為100,WR為20。從Pr
1隊(duì)列的頁P(yáng)
1開始選擇,由于100-77>20,則P
1作為替換者;若改變WR成25,則替換者應(yīng)為P
17。
2. P-LFU策略
P-LFU(priority-least frequently used)策略是P-LRU策略的一個(gè)變種,只要在P-LRU策略中將“使用時(shí)標(biāo)”改為“使用次數(shù)”即可。
3. 優(yōu)先夭折
將并發(fā)控制中的“高夭折低”策略直接用于緩沖區(qū)管理。當(dāng)一事務(wù)T不能獲得足夠所需的緩沖區(qū)頁面時(shí),它就夭折一個(gè)優(yōu)先級比它低的活動事務(wù),釋放該事務(wù)所占有的所有緩沖區(qū)頁面而為T所用。選擇犧牲者要考慮的因素: 第一是優(yōu)先級,犧牲者的優(yōu)先級比等待者(可能多個(gè))都低(但不一定是最低); 第二是占有的緩沖區(qū)頁面數(shù),夭折的事務(wù)所能釋放的頁面應(yīng)盡可能的多。優(yōu)先級比等待者低的所有事務(wù)中,優(yōu)先級最低而占有頁面數(shù)最多的事務(wù)作犧牲者當(dāng)然是理想的。若無此理想者存在,則以能滿足等待者的頁面要求為準(zhǔn)。
可能存在一個(gè)高優(yōu)先級事務(wù)夭折一個(gè)低優(yōu)先級事務(wù)后,仍然不能獲得所需的緩沖區(qū)頁面的情況,這是因?yàn)? 第一,所有優(yōu)先級低的事務(wù)中的任一個(gè)占有的頁面數(shù)都不夠; 第二,正在此時(shí),一個(gè)新的更高優(yōu)先級事務(wù)要求緩沖區(qū)頁面,因而搶先獲得所釋放的頁面。在這種情況下,只有夭折多個(gè)事務(wù)以提供足夠的頁面,但必須有一個(gè)限制,否則夭折和重啟動太多的事務(wù)會浪費(fèi)系統(tǒng)太多的資源,從而使整個(gè)系統(tǒng)性能下降。實(shí)驗(yàn)表明,一般限制最多夭折4個(gè)事務(wù)為佳。
與在并發(fā)控制中所討論的一樣,還可以有各種優(yōu)先夭折策略的變種,尤其是還可考慮候選犧牲者已完成和待完成的計(jì)算量的多少,若一事務(wù)雖然滿足犧牲者的條件,但它已執(zhí)行了大量計(jì)算,僅等很短時(shí)間便可完成而釋放其所占有的頁面,現(xiàn)夭折它,不是很可惜嗎?這樣既影響該事務(wù),又反而浪費(fèi)系統(tǒng)資源,加重系統(tǒng)負(fù)擔(dān)。
4. 優(yōu)先繼承
其思想與并發(fā)控制中完全一樣,當(dāng)一高優(yōu)先級事務(wù)T不能獲得所需的緩沖區(qū)頁面時(shí),選擇一個(gè)低優(yōu)先級事務(wù),但不是像上面所述夭折它,而是提高它的優(yōu)先級到T的優(yōu)先級,讓它繼續(xù)盡快執(zhí)行完成以盡早釋放其頁面。這里作繼承者的候選條件是優(yōu)先級低、待計(jì)算量最少且最接近其截止時(shí)間,因?yàn)樽罱咏浣刂箷r(shí)間的事務(wù)也應(yīng)該比其他事務(wù)早完成。
這種策略較上述優(yōu)先夭折策略,在緩沖區(qū)的緊張程度不太高的情況下更好。