專利名稱:一種基于代價的閃存數(shù)據(jù)庫緩沖區(qū)置換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種緩沖區(qū)置換方法,特別是關(guān)于一種基于代價的閃存數(shù)據(jù)庫緩沖區(qū)置換方法。
背景技術(shù):
典型的計(jì)算機(jī)系統(tǒng)包含兩層存儲器,分別是主存(緩沖區(qū))和輔存(外部存儲介質(zhì),如磁盤或者SSD)。緩沖區(qū)的存取速度遠(yuǎn)快于輔存,二者一般使用相同大小的數(shù)據(jù)頁。當(dāng)系統(tǒng)需要操作一個數(shù)據(jù)頁時,緩沖區(qū)算法需要按照如下步驟為系統(tǒng)準(zhǔn)備所需的數(shù)據(jù)頁(1)檢查請求頁是否在當(dāng)前緩沖區(qū)中。(2)若請求頁在當(dāng)前緩沖區(qū)中,則直接取得所需數(shù)據(jù),結(jié)束。(3)否則按照某種策略選擇一個置換頁。(4)若置換頁為只讀頁,則直接讀入請求頁;否則首先將置換頁的內(nèi)容寫回外存,然后讀入請求頁。其中前兩步都可通過0(1)代價完成,因此,處理一個請求頁的代價由第(3)步的 CPU代價和第(4)步的外存操作代價組成。對于第(3)步操作,雖然一般情況下CPU操作代價相對于外存操作來說較小,實(shí)際當(dāng)中,尤其是在出現(xiàn)頻繁換頁的情況下,如果第( 步的操作代價太高的話,將會影響到系統(tǒng)性能。對于第(4)步的外存IO操作,假設(shè)⑴緩沖區(qū)中無空閑空間放置新的請求頁,(^丨數(shù)據(jù)頁訪問序列為巧,巧,…-,!^,其中發(fā)生頁缺失的序列是!·' 1; r' 2,..., r' m(M彡N),(iii)訪問巧(1彡i彡N)的IO代價為Q ,則處理整個數(shù)據(jù)頁訪問序列的外存IO操作代價如公式(1)所示。Crolal=YjIiCri(1)第(4)步操作的目標(biāo)就是最小化訪問η個數(shù)據(jù)頁的IO總代價,當(dāng)請求頁r在緩沖區(qū)中時,可以直接得到,這時,訪問外存的IO代價為Cr = 0,因此,公式⑴可以簡化為如下的公式O)。Ctm1=Yjm^i(2)假設(shè)M次頁缺失對應(yīng)的M個置換頁中,有M'個數(shù)據(jù)頁在緩沖區(qū)進(jìn)行了修改,從緩沖區(qū)寫回外存的代價用Cw表示,從外存讀入緩沖區(qū)的代價用Ck表示。相應(yīng)的,磁盤上的操作代價用C和C丨表示,而閃存上的操作代價用G和c(表示。對于磁盤來說,已有方法[3-9] 的基本假設(shè)是磁盤的讀寫代價相同,即《 = G,公式(2)變?yōu)楣?3),其中c纟和Cf統(tǒng)一用C表示。C^lal = Cr, = M'(Cdr + C^)+ {M-M')CDR ^ M'+ MCdr = kMC {\<k<2)(3)因此,對于磁盤來說,降低η個數(shù)據(jù)頁的IO操作代價C^可以通過減少頁缺失次數(shù)M來獲得,即降低缺頁率(提高命中率)來獲得。缺頁率反映了必須從輔存讀入緩沖區(qū)的數(shù)據(jù)頁的比例。2Q(雙隊(duì)列方法)、ARC(自適應(yīng)的置換方法)、LIRS(低內(nèi)部訪問最近集合方法)、CLOCK(時鐘方法)、LRU-K(k個最近最少使用方法)、FBR(基于頻率的置換方法)和 LRFU(最近及最不頻繁使用方法)等算法主要通過使用啟發(fā)式方法來提高系統(tǒng)的性能,通過考慮數(shù)據(jù)頁在緩沖區(qū)中的滯留時間和使用頻率來減少缺頁率。具有不對稱存取時間的緩沖區(qū)置換問題可模擬成加權(quán)緩沖區(qū)問題,其目的是最小化請求序列的總代價。針對該問題,在“New results on server problems, SIAM J. Discrete Math.,vol. 4, no. 2, pp. 172-181,1991. ”一文中提出了復(fù)雜度為 0 (sn2)的最優(yōu)離線算法,其中s表示緩沖區(qū)中數(shù)據(jù)頁的個數(shù),η表示請求序列的長度。由于該算法的時間和空間復(fù)雜度很高,即使提前知道完整的請求序列,其運(yùn)行也需要耗費(fèi)大量的時間和空間資源。對于在線算法,不可能提前知道任何未來的請求序列。研究者已經(jīng)提出了許多在
線的基于閃存的緩沖區(qū)管理算法。由于閃存的讀寫代價不對稱,因此公式(2)變?yōu)楣?⑷。
權(quán)利要求
1.基于代價的閃存數(shù)據(jù)庫緩沖區(qū)置換方法,具體步驟為1)將數(shù)據(jù)頁歸類為只讀隊(duì)列RQ和修改隊(duì)列WQ;2)根據(jù)數(shù)據(jù)頁的變量參數(shù)對緩沖區(qū)的數(shù)據(jù)頁賦予權(quán)值;3)若CPU發(fā)出請求的數(shù)據(jù)頁r被命中,即該數(shù)據(jù)頁在內(nèi)存緩沖區(qū)中,則判斷數(shù)據(jù)頁r是否在只讀隊(duì)列RQ中;若不在內(nèi)存緩沖區(qū)中,進(jìn)行步驟4)的操作;4)上述步驟;3)中,若數(shù)據(jù)頁r不在只讀隊(duì)列RQ中,設(shè)定請求頁r的狀態(tài),將其計(jì)數(shù)器加1,并將其移動到修改隊(duì)列WQ的頭部;5)上述步驟3)中,若數(shù)據(jù)頁r在只讀隊(duì)列RQ中,則判斷CPU的請求是否是要修改數(shù)據(jù)頁r ;若是要修改r,則設(shè)定請求頁r的狀態(tài),將其計(jì)數(shù)器加1,并將其移動到修改隊(duì)列WQ的頭部;若僅是讀數(shù)據(jù)頁r,則設(shè)定請求頁r的狀態(tài),將其計(jì)數(shù)器加1,并將其移動到只讀隊(duì)列 RQ的頭部;6)若CPU發(fā)出請求的數(shù)據(jù)頁r未被命中,即該數(shù)據(jù)頁不在內(nèi)存緩沖區(qū)中,則判斷緩沖區(qū)是否已滿;若緩沖區(qū)不滿,從閃存存取請求頁,并重復(fù)步驟幻的過程;7)上述步驟6)中,若緩沖區(qū)已滿,則判斷只讀隊(duì)列RQ和修改隊(duì)列WQ是否是非空的; 若都是非空的,則比較只讀隊(duì)列RQ和修改隊(duì)列WQ隊(duì)尾處兩個數(shù)據(jù)頁的權(quán)值,并將權(quán)值較小的一個數(shù)據(jù)頁候選為置換頁;否則,從非空的只讀隊(duì)列RQ或修改隊(duì)列WQ中選擇隊(duì)尾處的數(shù)據(jù)頁為置換頁;8)若置換頁是在修改隊(duì)列WQ中選擇的,還需要將置換頁的內(nèi)容寫回閃存,然后才能從閃存存取請求頁;否則,直接從閃存存取請求頁;9)存取到請求頁之后重復(fù)步驟幻的過程。
2.如權(quán)利要求1所述的基于代價的閃存數(shù)據(jù)庫緩沖器置換方法,其特征在于,步驟1) 中的只讀隊(duì)列RQ為所有只讀數(shù)據(jù)頁的集合,修改隊(duì)列WQ為所有修改過數(shù)據(jù)頁的集合。
3.如權(quán)利要求2所述的基于代價的閃存數(shù)據(jù)庫緩沖器置換方法,其特征在于,只讀隊(duì)列RQ和修改隊(duì)列WQ中的每個數(shù)據(jù)頁分別按照權(quán)值的大小依次排序,權(quán)值最大的排在隊(duì)列頭部,權(quán)值最小的排在隊(duì)列尾部。
4.如權(quán)利要求3所述的基于代價的閃存數(shù)據(jù)庫緩沖器置換方法,其特征在于,步驟2) 中數(shù)據(jù)頁的變量參數(shù)包括向后距離r. bkw和數(shù)據(jù)頁的代價r. Cost。
5.如權(quán)利要求4所述的基于代價的閃存數(shù)據(jù)庫緩沖器置換方法,其特征在于,步驟2) 中權(quán)值計(jì)算公式為r. W = r. Cost/r. bkw。
6.如權(quán)利要求5所述的基于代價的閃存數(shù)據(jù)庫緩沖器置換方法,其特征在于,所述向后距離r. bkw表示從數(shù)據(jù)頁r最后一次被訪問到目前為止系統(tǒng)訪問數(shù)據(jù)頁的次數(shù)。
7.如權(quán)利要求6所述的基于代價的閃存數(shù)據(jù)庫緩沖器置換方法,其特征在于,所述數(shù)據(jù)頁的代價r. Cost包括只讀頁置換代價和修改頁置換代價。
8.如權(quán)利要求7所述的基于代價的閃存數(shù)據(jù)庫緩沖器置換方法,其特征在于,所述只讀頁置換代價為閃存讀入一個數(shù)據(jù)頁的代價,修改頁置換代價包括將數(shù)據(jù)頁r的內(nèi)容寫回閃存所需的寫代價、從閃存讀入請求頁的代價和將數(shù)據(jù)頁r的內(nèi)容寫回閃存所引起的級聯(lián)操作的平均代價。
全文摘要
本發(fā)明公開了一種基于代價的閃存數(shù)據(jù)庫緩沖區(qū)置換方法,其將緩沖區(qū)中的數(shù)據(jù)頁進(jìn)行歸類并賦予權(quán)值,在進(jìn)行緩沖區(qū)置換時,根據(jù)數(shù)據(jù)頁的權(quán)值選擇置換頁。與其他基于閃存的數(shù)據(jù)庫系統(tǒng)的緩沖區(qū)置換方法相比,本發(fā)明能根據(jù)不同性能的閃存進(jìn)行自適應(yīng)的策略調(diào)整,因此可以應(yīng)用到不同的閃存硬盤上,并能獲得比其他緩沖區(qū)方法更好的性能。本發(fā)明在命中率不下降的前提下,從只讀隊(duì)列或者修改隊(duì)列中根據(jù)數(shù)據(jù)頁的權(quán)值公平的選擇合適的置換頁,能減少對閃存的寫操作,減少了對閃存的磨損并提高了系統(tǒng)的性能。本發(fā)明能很好的處理序列訪問模式和長循環(huán)訪問模式,從而與其他基于閃存提出的緩沖區(qū)管理方法相比,能取得更好的性能,適應(yīng)各種閃存及各種存取模式。
文檔編號G06F12/08GK102207909SQ20111014493
公開日2011年10月5日 申請日期2011年5月31日 優(yōu)先權(quán)日2011年5月31日
發(fā)明者孟小峰, 湯顯 申請人:孟小峰