資源描述:
《基于postgresql的多緩沖池自適應(yīng)配置設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、碩士論文基于PostgreSQL的多緩沖池自適應(yīng)配置設(shè)計(jì)與實(shí)現(xiàn)圖2.3.1訪問(wèn)單一緩沖池的請(qǐng)求頁(yè)面從磁盤上檢索數(shù)據(jù)稱為物理讀取,物理讀取成本非常高,因?yàn)榇疟P訪問(wèn)比從主存讀取需要更多的時(shí)間。物理讀取可能也需要在緩沖池中進(jìn)行頁(yè)面替換,這樣就增加了額外的花費(fèi)。數(shù)據(jù)庫(kù)管理員試圖最小化物理讀取的數(shù)目,在給定的時(shí)間段內(nèi)這導(dǎo)致緩沖池“閱讀次數(shù)匹配記錄”的增加(緩沖池命中率增加),降低數(shù)據(jù)訪問(wèn)時(shí)間(DataAccessTime,DAT),或者執(zhí)行一個(gè)查詢需要檢索頁(yè)面的時(shí)蝌37J。當(dāng)發(fā)生替換頁(yè)面時(shí),就要從緩沖池中選擇
2、一個(gè)受損頁(yè)面,取而代之是一個(gè)請(qǐng)求頁(yè)面。如果緩沖池中的這個(gè)頁(yè)面是臟頁(yè)的,它的內(nèi)容已經(jīng)被改變,它必須被寫入到磁盤。如果該頁(yè)不是臟頁(yè),那么沒(méi)有必要寫入磁盤,同時(shí)在緩沖池中傳入的頁(yè)面替換受損頁(yè)面博J。前面給出的幾種替換策略都是力求最小化數(shù)據(jù)訪問(wèn)時(shí)間。包括了最近最少使用(LeastRecentlyUsed,LRU),最近最多使用的(MostRecentlyUsed,MRU)和最不頻繁的(LFU)和最頻繁使用的(MFU)【91。對(duì)于LUR和MRU替換原則,選擇替換的頁(yè)面分別是最近最少訪問(wèn)的或者最近最多使用的頁(yè)面
3、。如果一個(gè)請(qǐng)求的數(shù)據(jù)頁(yè)面在很短的時(shí)間段內(nèi)被再次訪問(wèn)的概率很高,最新的頁(yè)面就保存在了緩沖池內(nèi),以及替換最近少用的頁(yè)面,那么LRU就是有效的。如果頁(yè)面已被前面訪問(wèn)后又被訪問(wèn)的概率很低,那么MRU是一個(gè)很好的替換算法,在LFU和MFU之間關(guān)系也是如此的。每個(gè)頁(yè)面都有一個(gè)計(jì)數(shù)器用于監(jiān)視它如何頻繁的使用。最不常用的頁(yè)面在LFU中最先被替換,最常用的頁(yè)面在MFU中最先被替換【7J。最小化磁盤訪問(wèn)的方法之一是使用比較穩(wěn)定的頁(yè)面替換算法。在前面提出的幾種算法主要研究的是最近使用和頻繁使用的頁(yè)面。LRU—K算法主要內(nèi)
4、容是跟蹤最后一次對(duì)內(nèi)存頁(yè)面進(jìn)行K引用的時(shí)間,并按照所期望的未來(lái)行為,使用統(tǒng)計(jì)信息對(duì)72相關(guān)工作和研究現(xiàn)狀碩士論文頁(yè)面進(jìn)行等級(jí)排序。根據(jù)該統(tǒng)計(jì)信息,決定要舍棄內(nèi)存中哪個(gè)駐留頁(yè)面,以便為必須要讀入內(nèi)存中、最近訪問(wèn)過(guò)的頁(yè)面騰出空間。由于經(jīng)常收集關(guān)于引用頁(yè)面的統(tǒng)計(jì)信息,因此LRU—K算法可以隨時(shí)適應(yīng)并不斷更改的訪問(wèn)模式。它的主要思想是用一定數(shù)量的數(shù)據(jù)庫(kù)對(duì)象去替代最近最少訪問(wèn)的同樣數(shù)量的數(shù)據(jù)庫(kù)對(duì)象,可以避免頻繁替換。這種算法在同等軟件、硬件環(huán)境下大大的改善了數(shù)據(jù)庫(kù)的性能【22。。當(dāng)前PostgreSQL使用L
5、RU替換策略,試圖整合LRU—K算法,希望減少磁盤爭(zhēng)奪【lo】。另一個(gè)可能性就是考慮多緩沖池,通過(guò)緩沖區(qū)管理器控制緩沖的分配和在每個(gè)緩沖池中進(jìn)行的頁(yè)面替換。目前也提出了更加復(fù)雜的緩沖區(qū)劃分政策。例如,Davison和Graefe試圖估計(jì)使用緩沖區(qū)的代價(jià)【ll】。原則上緩沖管理器的分配職責(zé)類似于經(jīng)濟(jì)利益最大化原則。例如經(jīng)紀(jì)人分配出購(gòu)買特定資源的貨幣,進(jìn)程可以購(gòu)買這些資源。如果兩個(gè)進(jìn)程需要相同的資源,經(jīng)紀(jì)人必須確定哪一個(gè)進(jìn)程是更值得購(gòu)買。如果參與競(jìng)爭(zhēng)的進(jìn)程能夠購(gòu)買起這個(gè)資源,在系統(tǒng)中有利潤(rùn)最大化后,就執(zhí)
6、行這個(gè)進(jìn)程。就可以將這個(gè)資源出售給這些進(jìn)程。數(shù)據(jù)庫(kù)管理系統(tǒng)的查詢進(jìn)程需要為執(zhí)行查詢?nèi)ベ?gòu)買特定的資源。緩沖區(qū)管理器的工作可以稱為‘緩沖區(qū)經(jīng)紀(jì)人’,用于提高系統(tǒng)吞吐量有效的利用緩沖區(qū)【39】。用戶執(zhí)行執(zhí)行查詢,試圖通過(guò)緩沖區(qū)管理器進(jìn)行劃分頁(yè)面來(lái)完成滿足查詢的需要。緩沖區(qū)分配策略執(zhí)行一個(gè)查詢,要選擇緩沖的數(shù)目主要是基于需求因素,還包括緩沖區(qū)的可用系數(shù)和動(dòng)態(tài)負(fù)載因子【4J。需求因素要考慮查詢需要的空間,并指派更多的緩沖區(qū)來(lái)滿足查詢的需要。緩沖區(qū)的可用性主要考慮用于查詢所需空閑的緩沖區(qū)數(shù)目,以及確當(dāng)前定查詢特
7、性的動(dòng)態(tài)負(fù)載因子。一個(gè)良好的緩沖劃分策略應(yīng)考慮所有的這些因素。緩沖區(qū)劃分策略的目標(biāo)是為查詢分配緩沖區(qū),以是減少磁盤訪問(wèn)次數(shù)。分散的緩沖區(qū)分配原則例如是先進(jìn)先出[FIFO],最近最少使用的(LRU),隨機(jī)的,時(shí)鐘等待設(shè)置【8f9用緩沖區(qū)的數(shù)目,不使用特定查詢?cè)L問(wèn)模式。動(dòng)態(tài)分配緩沖區(qū)頁(yè)面是非常可取的方法,但是需要考慮預(yù)測(cè)負(fù)載,以及在執(zhí)行當(dāng)前的查詢時(shí)進(jìn)行劃分緩沖池。換句話說(shuō),每個(gè)查詢可以分配到一個(gè)DBMS緩沖池,每個(gè)查詢的特點(diǎn)是隨機(jī),連續(xù),循環(huán)或者分層關(guān)系。引用關(guān)系的頁(yè)面屬于這種關(guān)系的引用序列。例如查詢:
8、簡(jiǎn)單訪問(wèn)一個(gè)關(guān)系元組就可以稱為一個(gè)隨機(jī)訪問(wèn)。在連續(xù)的引用中,選擇使用一個(gè)聚集索引,去引用和處理一個(gè)又一個(gè)不重復(fù)的頁(yè)面。當(dāng)重復(fù)執(zhí)行順序引用時(shí),引用就可以稱為一個(gè)循環(huán)引用。分層引用是一個(gè)頁(yè)面訪問(wèn)序列,形成一個(gè)從根到葉子的索引的遍歷。預(yù)期的錯(cuò)誤頁(yè)面數(shù)目,或者訪問(wèn)磁盤的數(shù)目,根據(jù)錯(cuò)誤頁(yè)面的概率和觀察的錯(cuò)誤數(shù),得出每種引用的特定數(shù)學(xué)等式。分類查詢引8碩士論文基于PostgreSQk的多緩沖池自適應(yīng)配置設(shè)計(jì)與實(shí)現(xiàn)用緩沖池的另一種方法是數(shù)據(jù)對(duì)象類型的分類。這是由Martin等人在動(dòng)