亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于影子頁(yè)面和混合日志的MMDB恢復(fù)方法

        2011-09-07 10:16:50鮑程鋒楊小虎
        關(guān)鍵詞:磁盤檢查點(diǎn)緩沖區(qū)

        鮑程鋒, 楊小虎

        (浙江大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江杭州310027)

        0 引 言

        內(nèi)存數(shù)據(jù)庫(kù),簡(jiǎn)單的說就是數(shù)據(jù)庫(kù)的“工作版本”(也可以是整個(gè)數(shù)據(jù)庫(kù))常駐內(nèi)存的數(shù)據(jù)庫(kù)系統(tǒng)[1],即任意時(shí)刻,任意一個(gè)活動(dòng)事務(wù)所操作的數(shù)據(jù)集都在內(nèi)存中。由于內(nèi)存數(shù)據(jù)庫(kù)是針對(duì)內(nèi)存設(shè)計(jì)的,數(shù)據(jù)庫(kù)不再是按照某種數(shù)據(jù)模型組織起來并存放在磁盤中的數(shù)據(jù)集合,而是作為內(nèi)存中可尋址的數(shù)據(jù)集,活動(dòng)事務(wù)只與內(nèi)存打交道,而不需涉及磁盤I/O,所以內(nèi)存數(shù)據(jù)庫(kù)相對(duì)于傳統(tǒng)的磁盤數(shù)據(jù)庫(kù)來說,存取速度更快,且存取的時(shí)間是可預(yù)測(cè)的。然而由于內(nèi)存的易失性,內(nèi)存數(shù)據(jù)庫(kù)必須在磁盤上保留備份,使得發(fā)生系統(tǒng)崩潰等故障的情況下,能使數(shù)據(jù)庫(kù)恢復(fù)到一致性狀態(tài)[2]。這就導(dǎo)致數(shù)據(jù)庫(kù)更新的備份、日志的存儲(chǔ)以及異常恢復(fù)大量的磁盤I/O操作,所以設(shè)計(jì)高效的系統(tǒng)模型以及恢復(fù)策略是內(nèi)存數(shù)據(jù)庫(kù)的關(guān)鍵技術(shù)之一。

        本文討論了通過結(jié)合影子頁(yè)面[4]技術(shù)、混合日志策略以及模糊檢查點(diǎn)[6]思想的內(nèi)存數(shù)據(jù)庫(kù)的組織結(jié)構(gòu),并在此內(nèi)存數(shù)據(jù)庫(kù)結(jié)構(gòu)下,如何實(shí)現(xiàn)內(nèi)存數(shù)據(jù)庫(kù)數(shù)據(jù)以及日志的快速備份,以及當(dāng)內(nèi)存數(shù)據(jù)庫(kù)出現(xiàn)事務(wù)故障或者系統(tǒng)故障時(shí),如何通過磁盤上內(nèi)存數(shù)據(jù)庫(kù)的備份文件和日志文件,來快速恢復(fù)內(nèi)存數(shù)據(jù)庫(kù)到一致性狀態(tài)。

        1 內(nèi)存數(shù)據(jù)庫(kù)模型和故障恢復(fù)策略

        1.1 系統(tǒng)模型

        系統(tǒng)模型如圖1所示,內(nèi)存數(shù)據(jù)庫(kù)主要由以下幾個(gè)部分組成,內(nèi)存數(shù)據(jù)庫(kù)區(qū),影子頁(yè)面區(qū),私有日志區(qū),全局日志區(qū)。

        圖1 系統(tǒng)模型

        每個(gè)事務(wù)都有自己獨(dú)立的私有日志區(qū),這樣可以避免多個(gè)事務(wù)之間對(duì)日志區(qū)訪問的嚴(yán)重競(jìng)爭(zhēng)。當(dāng)某一個(gè)事務(wù)要對(duì)內(nèi)存數(shù)據(jù)庫(kù)中某一個(gè)頁(yè)面進(jìn)行更新操作時(shí),首先要復(fù)制一份與這個(gè)將要被更新頁(yè)面一模一樣的頁(yè)面,稱為這個(gè)被更新的數(shù)據(jù)庫(kù)頁(yè)面的影子頁(yè)面,所有的更新操作首先作用在這個(gè)影子頁(yè)面上,當(dāng)事務(wù)夭折時(shí),直接撤銷對(duì)應(yīng)的影子頁(yè)面和私有日志,而無需記錄Undo日志;當(dāng)該事務(wù)已提交,并且已經(jīng)把私有日志區(qū)的日志文件更新到全局日志區(qū)時(shí),再把數(shù)據(jù)庫(kù)中的該頁(yè)面替換為其對(duì)應(yīng)的影子頁(yè)面并置臟頁(yè)位。另外通過一個(gè)獨(dú)立的進(jìn)程不斷的把全局日志區(qū)的日志刷新到磁盤日志文件上。

        1.2 事務(wù)過程

        在本系統(tǒng)模型中,我們采用影子頁(yè)面技術(shù)來完成對(duì)內(nèi)存數(shù)據(jù)庫(kù)頁(yè)面的更新操作。對(duì)所有要被更新的數(shù)據(jù)庫(kù)頁(yè)面都復(fù)制一個(gè)跟原頁(yè)面相同的副本(影子頁(yè)面),更新發(fā)生在影子頁(yè)面上,而不是原數(shù)據(jù)庫(kù)頁(yè)面上,如果事務(wù)成功提交,把當(dāng)前數(shù)據(jù)庫(kù)頁(yè)面替換成其對(duì)應(yīng)的影子頁(yè)面,如果事務(wù)失敗,則丟棄影子頁(yè)面。由于不是直接在當(dāng)前頁(yè)上做修改,當(dāng)前頁(yè)的信息在事務(wù)未成功提交前仍存在,所以可以不用記錄事務(wù)Undo類型日志。當(dāng)事務(wù)由于異常情況終止時(shí),只要撤銷其對(duì)應(yīng)的影子頁(yè)面和日志文件即可。通過這種方法,可以減少日志文件的大小和恢復(fù)時(shí)的重做過程,可以提交恢復(fù)的效率。

        當(dāng)一個(gè)事務(wù)開始執(zhí)行時(shí),首先獲得要修改的數(shù)據(jù)庫(kù)頁(yè)面的鎖,并復(fù)制一個(gè)該頁(yè)面對(duì)應(yīng)的影子頁(yè)面,事務(wù)在這個(gè)影子頁(yè)面上做相應(yīng)的修改數(shù)據(jù)的操作,并將對(duì)應(yīng)的日志寫到其對(duì)應(yīng)的私有日志區(qū),如果事務(wù)失敗,則丟棄該事務(wù)對(duì)應(yīng)的影子頁(yè)面和私有日志區(qū)的日志文件即可,也就是事務(wù)故障的恢復(fù)并不涉及磁盤I/O,系統(tǒng)可以快速?gòu)氖聞?wù)故障中恢復(fù);如果事務(wù)正常提交,則執(zhí)行事務(wù)的提交過程。事務(wù)提交過程(見圖2)如下:

        (1)首先,獲得全局日志緩沖區(qū)的鎖,復(fù)制日志文件到全局日志緩沖區(qū),在檢查點(diǎn)過程時(shí),復(fù)制的是物理日志;在非檢查點(diǎn)過程時(shí),復(fù)制的是邏輯日志。當(dāng)復(fù)制日志文件過程結(jié)束,釋放全局日志緩沖區(qū)的鎖。

        (2)把當(dāng)前內(nèi)存數(shù)據(jù)庫(kù)頁(yè)面替換成其對(duì)應(yīng)的影子頁(yè)面。

        (3)丟棄內(nèi)存數(shù)據(jù)庫(kù)老頁(yè)面和其對(duì)應(yīng)的私有日志區(qū)日志文件。

        (4)釋放所有鎖。

        (5)如果全局日志緩沖區(qū)中還有這個(gè)事務(wù)對(duì)應(yīng)的日志文件未被刷新到磁盤文件,則等待相應(yīng)的日志文件的備份完成。

        在一般的事務(wù)執(zhí)行過程中,日志先被存放在私有日志區(qū)中,這樣可以有效的減少對(duì)全局日志緩沖區(qū)的競(jìng)爭(zhēng),并且由于只有正常提交的事務(wù)的私有日志區(qū)日志才會(huì)被復(fù)制到全局日志緩沖區(qū),然后刷新到磁盤,所以當(dāng)系統(tǒng)出現(xiàn)故障重啟之后,只要根據(jù)日志進(jìn)行重做即可[8]。

        圖2 事務(wù)提交過程

        在事務(wù)提交的第一步中,鎖定全局日志緩沖區(qū)后,需要確定復(fù)制物理日志還是邏輯日志到全局日志緩沖區(qū),我們使用一個(gè)由檢查點(diǎn)進(jìn)程維護(hù)的全局變量,chkpt_flag來確定。具體算法如下:

        由于全局日志緩沖區(qū)的鎖是同步的,也就是說檢查點(diǎn)進(jìn)程不能在事務(wù)寫日志時(shí),寫B(tài)C或者EC到全局日志緩沖區(qū),并設(shè)置監(jiān)測(cè)變量,所以事務(wù)日志不會(huì)出現(xiàn)部分是物理日志,部分是邏輯日志的情況。

        1.3 混合日志

        由于本系統(tǒng)模型采用模糊檢查點(diǎn)的策略,檢查點(diǎn)進(jìn)程備份內(nèi)存數(shù)據(jù)庫(kù)文件以及全局日志緩沖區(qū)的日志文件到磁盤上的數(shù)據(jù)庫(kù)文件和日志文件時(shí),并不阻塞一般事務(wù)的執(zhí)行過程。這樣就會(huì)導(dǎo)致檢查點(diǎn)過程刷新內(nèi)存數(shù)據(jù)庫(kù)中部分已被更新的臟頁(yè)面?zhèn)浞莸酱疟P上的備份數(shù)據(jù)庫(kù)中,這樣的情況下,只有通過記錄物理的日志的方式才能使得內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)到一致性狀態(tài)。但是如果系統(tǒng)中全部采用物理日志類型的日志就會(huì)出現(xiàn)另外一個(gè)問題,由于物理日志類型的日志數(shù)據(jù)量龐大,那么在日志的備份以及根據(jù)日志重做方面會(huì)消耗大量的時(shí)間,系統(tǒng)在執(zhí)行一般事務(wù),以及發(fā)生故障之后的恢復(fù)等操作將會(huì)變的異常緩慢,這將成為內(nèi)存數(shù)據(jù)庫(kù)的瓶頸。

        為了解決以上兩種情況,達(dá)到既能在內(nèi)存數(shù)據(jù)庫(kù)不一致情況下發(fā)生故障時(shí)把內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)到故障前的一致性狀態(tài),又能減少日志文件大小的效果,我們采用混合日志的策略進(jìn)行日志記錄。當(dāng)系統(tǒng)運(yùn)行在兩個(gè)檢查點(diǎn)進(jìn)程間的時(shí)候,并不進(jìn)行備份操作,即,系統(tǒng)不刷新內(nèi)存數(shù)據(jù)庫(kù)中的臟頁(yè)面到磁盤上的備份數(shù)據(jù)庫(kù)中。因此在這種情況下,不會(huì)發(fā)生部分已被更新的臟頁(yè)面被刷新到備份數(shù)據(jù)庫(kù)的不一致狀況。所以,當(dāng)系統(tǒng)運(yùn)行在兩個(gè)檢查點(diǎn)進(jìn)程之間的時(shí)候,可以使用邏輯日志類型的日志進(jìn)行日志記錄。邏輯日志類型的日志可以保證內(nèi)存數(shù)據(jù)庫(kù)在一致性狀況下發(fā)生故障時(shí),進(jìn)行重做,使得內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)到發(fā)生故障之前的狀態(tài)。當(dāng)檢查點(diǎn)進(jìn)程正在運(yùn)行時(shí),我們必須使用物理日志。因?yàn)榇藭r(shí),系統(tǒng)正在不斷備份內(nèi)存數(shù)據(jù)庫(kù)的臟頁(yè)面到磁盤數(shù)據(jù)庫(kù)上,一般事務(wù)的更新操作也在同時(shí)進(jìn)行,所以有可能備份了部分已被更新的臟頁(yè)面到磁盤上,而此時(shí)數(shù)據(jù)庫(kù)正處于不一致狀態(tài),如果發(fā)生系統(tǒng)故障,必須使用物理日志才能使得內(nèi)存數(shù)據(jù)庫(kù)回到故障發(fā)生之前的狀態(tài)。

        通過以上的分析,采用混合日志策略如下:當(dāng)檢查點(diǎn)進(jìn)程正在運(yùn)行時(shí),使用物理日志,當(dāng)系統(tǒng)處于兩個(gè)檢查點(diǎn)進(jìn)程之間時(shí),使用邏輯日志。既可以減少日志量,又可以對(duì)部分已更新的臟頁(yè)被刷新到磁盤備份數(shù)據(jù)庫(kù)時(shí)發(fā)生系統(tǒng)故障的情況進(jìn)行故障恢復(fù)。

        1.4 檢查點(diǎn)過程

        檢查點(diǎn)過程主要是把內(nèi)存數(shù)據(jù)庫(kù)的臟頁(yè)刷新到磁盤上的備份數(shù)據(jù)庫(kù)中。為了使檢查點(diǎn)過程不阻塞事務(wù),本系統(tǒng)模型采用模糊檢查點(diǎn)方法[3,6],就是在檢查點(diǎn)過程不對(duì)刷新的臟頁(yè)加鎖,事務(wù)對(duì)頁(yè)面可讀寫。一般模糊檢查點(diǎn)過程算法如下:

        采用模糊檢查點(diǎn)策略能夠使得檢查點(diǎn)進(jìn)程和事務(wù)并行,不需要在運(yùn)行檢查點(diǎn)進(jìn)程時(shí)阻塞事務(wù)進(jìn)程的運(yùn)行。然而采用模糊檢查點(diǎn)策略可能會(huì)違反WAL(write-aheadlogging)規(guī)則[7]??紤]以下情況,當(dāng)利用影子頁(yè)面方式更新時(shí),事務(wù)首先把日志寫到日志頁(yè)面,接著刷新影子頁(yè)面的臟數(shù)據(jù)到內(nèi)存數(shù)據(jù)庫(kù)中,然后事務(wù)等待日志頁(yè)面被刷新到磁盤,如果此時(shí),檢查點(diǎn)進(jìn)程也同時(shí)在運(yùn)行,那就可能導(dǎo)致部分已經(jīng)更新到內(nèi)存數(shù)據(jù)庫(kù)的臟數(shù)據(jù)被更新到磁盤上的備份數(shù)據(jù)庫(kù),而此時(shí)對(duì)應(yīng)的日志頁(yè)面還沒有被更新到磁盤,這就違反了WAL(write-aheadlogging)規(guī)則。如果在這種情況下,發(fā)生系統(tǒng)故障,因?yàn)榇疟P上沒有對(duì)應(yīng)日志文件,磁盤的備份數(shù)據(jù)庫(kù)就不能恢復(fù)到一致性狀態(tài)。我們采用乒乓策略[5]作為備份方法來避免在做檢查點(diǎn)時(shí)違反了WAL(write-ahead logging)規(guī)則。因?yàn)槠古也呗钥偸蔷S護(hù)兩個(gè)備份數(shù)據(jù)庫(kù),檢查點(diǎn)進(jìn)程交替的在兩個(gè)數(shù)據(jù)庫(kù)之間進(jìn)行備份操作,所以,當(dāng)前進(jìn)行更新操作的數(shù)據(jù)庫(kù)頁(yè)面的原始頁(yè)面總是存在的,所以這樣就能使得備份數(shù)據(jù)庫(kù)恢復(fù)到一致性狀態(tài)。檢查點(diǎn)的執(zhí)行過程如下:

        (1)首先,不斷的循環(huán)直到獲取全局日志緩沖區(qū)的鎖,并對(duì)全局日志緩沖區(qū)加鎖,接著記錄檢查點(diǎn)過程開始標(biāo)記(BC)到全局日志緩沖區(qū),以區(qū)分檢查點(diǎn)開始前和開始后提交的日志。

        (2)釋放全局日志緩沖區(qū)的鎖。

        (3)把數(shù)據(jù)庫(kù)的臟頁(yè)復(fù)制到臨時(shí)緩沖區(qū),并清除臟頁(yè)位,然后將臨時(shí)緩沖區(qū)的內(nèi)容刷新到磁盤上備份數(shù)據(jù)庫(kù)對(duì)應(yīng)的頁(yè)面。

        (4)取得全局日志緩沖區(qū)的鎖,寫檢查點(diǎn)結(jié)束的標(biāo)記(EC)到全局日志緩沖區(qū)。

        (5)釋放全局日志緩沖區(qū)的鎖。

        (6)等待全局日志緩沖區(qū)的日志刷新到磁盤,直到檢查點(diǎn)結(jié)束標(biāo)記,EC,被刷新到磁盤日志文件。然后記錄檢查點(diǎn)開始標(biāo)記,BC,的位置,并設(shè)置BC為內(nèi)存數(shù)據(jù)故障恢復(fù)重做起點(diǎn)。

        下面一個(gè)問題是系統(tǒng)如何根據(jù)備份的數(shù)據(jù)庫(kù)文件和日志文件把內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)到發(fā)生故障之前的狀態(tài)?在這個(gè)過程中需要對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行重裝以及根據(jù)redo日志文件進(jìn)行重做。那么如何確定redo日志重做起點(diǎn)就成為系統(tǒng)的關(guān)鍵。在本文描述的系統(tǒng)模型中,我們采用混合日志,即在檢查點(diǎn)過程中使用物理日志,在檢查點(diǎn)進(jìn)程間采用的邏輯日志。我們可以使用物理日志對(duì)部分更新的數(shù)據(jù)庫(kù)文件頁(yè)面進(jìn)行恢復(fù),而邏輯日志則無法將部分更新的數(shù)據(jù)庫(kù)文件頁(yè)面恢復(fù)到之前的一致性狀態(tài)??紤]以下情況,如圖3所示,在檢查點(diǎn)進(jìn)程寫B(tài)C到全局日志緩沖區(qū)的時(shí)候,一般事務(wù)T1正在更新內(nèi)存數(shù)據(jù)庫(kù)的頁(yè)面,那么這些部分更新的內(nèi)存數(shù)據(jù)庫(kù)的頁(yè)面可能被刷新到磁盤上的備份數(shù)據(jù)庫(kù)文件中。而由于事務(wù) T1開始于檢查點(diǎn)進(jìn)程開始之前,T1采用邏輯日志。因此當(dāng)發(fā)生故障的情況下,系統(tǒng)無法根據(jù)日志文件進(jìn)行內(nèi)存數(shù)據(jù)庫(kù)的恢復(fù)。鑒于以上情況,我們采用推遲檢查點(diǎn)備份起點(diǎn)策略,系統(tǒng)等待事務(wù)T1的更新操作結(jié)束才開始檢查點(diǎn)的備份操作,這樣檢查點(diǎn)進(jìn)程就可以避免備份部分被更新的數(shù)據(jù)庫(kù)頁(yè)面,并且其對(duì)應(yīng)的日志類型是邏輯日志的情況。事務(wù) T2更新內(nèi)存數(shù)據(jù)庫(kù)文件頁(yè)面也可能部分被刷新到磁盤上的備份數(shù)據(jù)庫(kù)中,但是其日志記錄開始于BC之后,所以其對(duì)應(yīng)的日志類型是物理日志,系統(tǒng)可以根據(jù)日志文件將內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)到一致性狀態(tài)。根據(jù)以上描述,由于本系統(tǒng)模型采用延遲的檢查點(diǎn)備份起點(diǎn)策略,所以只要記錄上一次完整的檢查點(diǎn)過程的開始位置(BC),并將其作為日志重做起點(diǎn),就可以把重裝后的內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)到發(fā)生故障之前的一致性狀態(tài)。

        圖3 延遲備份策略

        2 故障恢復(fù)

        2.1 事務(wù)故障

        對(duì)于事務(wù)故障,由于我們采用影子頁(yè)面技術(shù),事務(wù)在提交之前,系統(tǒng)維護(hù)一個(gè)與數(shù)據(jù)庫(kù)原頁(yè)面一模一樣的影子頁(yè)面,事務(wù)所作的修改都發(fā)生在影子頁(yè)面上。因此,當(dāng)發(fā)生事務(wù)故障時(shí),我們只需要丟棄該事務(wù)所涉及的所有影子頁(yè)面,清空其私有日志緩沖區(qū)即可。也就是說事務(wù)故障恢復(fù)并不涉及磁盤I/O,使得恢復(fù)過程非常迅速。

        2.2 系統(tǒng)故障

        以下將對(duì)于不同時(shí)刻發(fā)生的系統(tǒng)故障,重做開始位置的確定進(jìn)行分析。

        如圖4所示,系統(tǒng)故障可能發(fā)生在檢查進(jìn)程間,也可能發(fā)生在檢查點(diǎn)過程中:

        (1)當(dāng)出現(xiàn)圖4中系統(tǒng)故障1時(shí),即系統(tǒng)故障發(fā)生在兩個(gè)檢查點(diǎn)進(jìn)程之間,磁盤數(shù)據(jù)庫(kù)處于第K個(gè)檢查點(diǎn)進(jìn)程完成后的狀態(tài)。根據(jù)前文的分析可知,對(duì)于BCK后第K個(gè)檢查點(diǎn)備份點(diǎn)之前已經(jīng)完成的對(duì)內(nèi)存數(shù)據(jù)庫(kù)頁(yè)面的更新操作都將被完整的刷新到磁盤數(shù)據(jù)庫(kù)上,而之后對(duì)內(nèi)存數(shù)據(jù)庫(kù)的更新可能部分被刷新到磁盤數(shù)據(jù)庫(kù),存在不確定性,因此這種情況下,BCK是redo日志的重做起點(diǎn)。

        (2)當(dāng)出現(xiàn)圖4中系統(tǒng)故障2時(shí),即系統(tǒng)故障發(fā)生在檢查點(diǎn)過程中。這種情況下,同樣只能保證BCK后第K個(gè)檢查點(diǎn)備份點(diǎn)之前的對(duì)內(nèi)存數(shù)據(jù)庫(kù)的更新被刷新到磁盤數(shù)據(jù)庫(kù),而無法保證之后的更新完整的被刷新到磁盤數(shù)據(jù)庫(kù),因此,同樣BCK是redo日志的重做起點(diǎn)。

        從以上分析可知,由于采用了延遲備份的檢查點(diǎn)策略,系統(tǒng)故障發(fā)生后恢復(fù)的redo起點(diǎn)是最近一次完整檢查點(diǎn)過程的開始位置BC處。即只需提供例子中BCK后的日志即可,而無需導(dǎo)入全部的日志文件,減少了日志量,使得恢復(fù)過程更加迅速。

        圖4 系統(tǒng)故障情況

        3 性能分析

        本節(jié)將通過比較采用混合日志和完全采用物理日志兩種策略所產(chǎn)生的日志量,來說明本文所采用的內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)方法在恢復(fù)性能上的優(yōu)勢(shì)。

        假設(shè)內(nèi)存數(shù)據(jù)庫(kù)有N個(gè)分區(qū),并且采用連續(xù)的檢查點(diǎn)策略,即當(dāng)前一個(gè)分區(qū)的檢查點(diǎn)過程結(jié)束之后,緊接著開始后一個(gè)分區(qū)的檢查點(diǎn)過程。并且假設(shè)每一個(gè)分區(qū)檢查點(diǎn)過程中,事務(wù)對(duì)分區(qū)訪問所產(chǎn)生的日志個(gè)數(shù)均為S,則一個(gè)分區(qū)檢查點(diǎn)過程所產(chǎn)生的日志個(gè)數(shù)為SN,所以一個(gè)完整的檢查點(diǎn)過程所產(chǎn)生的日志個(gè)數(shù)為(SN)N。設(shè)一個(gè)物理日志大小為P,一個(gè)邏輯日志大小為Q,記一個(gè)完整的檢查點(diǎn)過程所產(chǎn)生的日志量為 ChkptLogSize,一個(gè)完整的恢復(fù)過程重做的日志量為 ApplyLogSize。則當(dāng)在完全采用物理日志的情況下,有

        在采用混合日志的情況下,一個(gè)分區(qū)檢查點(diǎn)過程所產(chǎn)生的日志量為SP+SQ(N-1),則

        由以上分析可知,ChkptLogSizephysical/ChkptLogSizehybrid=NP/(P+NQ-Q),ApplyLogSizephysical/ApplyLogSizehybrid=(NP+P)/(2P+NQ-Q),由于P比Q大的多,所以,ChkptLogSizephysical/ChkptLogSizehybrid和 ApplyLogSizephysical/ApplyLogSizehybrid都大于1,即采用混合日志策略比采用物理日志策略所產(chǎn)生的日志量和恢復(fù)過程所需的日志量都要小,使得檢查點(diǎn)過程和恢復(fù)過程都有更好的性能表現(xiàn)。

        4 結(jié)束語

        本文設(shè)計(jì)了一種基于影子頁(yè)面和混合日志的內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)方法,并結(jié)合模糊檢查點(diǎn)的思想以及延遲備份策略,使得在處理事務(wù)故障時(shí),無需磁盤I/O操作,檢查點(diǎn)過程和事務(wù)執(zhí)行過程并行,并且由于記錄的日志量大大減少,使得內(nèi)存數(shù)據(jù)庫(kù)在系統(tǒng)故障后能快速恢復(fù)。將來我們研究的重點(diǎn)是該方法在分段的內(nèi)存數(shù)據(jù)庫(kù)中的應(yīng)用以及檢查點(diǎn)進(jìn)程周期的確定等問題。

        [1]許貴平,蔡博克.支持實(shí)時(shí)內(nèi)存數(shù)據(jù)庫(kù)不間斷服務(wù)的恢復(fù)技術(shù)[J].計(jì)算機(jī)工程,2008,34(6):70-71.

        [2]王珊,肖艷芹,劉大為,等.內(nèi)存數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)應(yīng)用,2007,27(10):2353-2357.

        [3]廖國(guó)瓊,劉云生,肖迎元.實(shí)時(shí)內(nèi)存數(shù)據(jù)庫(kù)分區(qū)模糊檢查點(diǎn)策略[J].計(jì)算機(jī)研究與發(fā)展,2006,43(7):1291-1296.

        [4]黃琳,路京,林中.基于影子頁(yè)面的MMDB的數(shù)據(jù)恢復(fù)方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(10):2470-2473.

        [5]Qin Xiongpai,Xiao Yanqin,Cao Wei,et al.A parallel recovery scheme for update intensive main memory database[C].Otago:PDCAT,2008:509-516.

        [6]陳安龍.內(nèi)存數(shù)據(jù)庫(kù)中數(shù)據(jù)恢復(fù)技術(shù)的研究與實(shí)現(xiàn)[D].杭州:浙江大學(xué)計(jì)算機(jī)學(xué)院,2006.

        [7]肖迎元,劉云生,廖國(guó)瓊,等.一種實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)庫(kù)故障恢復(fù)策略[J].軟件學(xué)報(bào),2007,18(10):2516-2527.

        [8]Using oracle in-memory database cache to accelerate the oracle database[EB/OL].http://www.oracle.com,2009.

        猜你喜歡
        磁盤檢查點(diǎn)緩沖區(qū)
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計(jì)與實(shí)現(xiàn)
        Spark效用感知的檢查點(diǎn)緩存并行清理策略①
        免疫檢查點(diǎn)抑制劑相關(guān)內(nèi)分泌代謝疾病
        解決Windows磁盤簽名沖突
        電腦愛好者(2019年2期)2019-10-30 03:45:31
        免疫檢查點(diǎn)抑制劑在腫瘤治療中的不良反應(yīng)及毒性管理
        修改磁盤屬性
        磁盤組群組及iSCSI Target設(shè)置
        創(chuàng)建VSAN群集
        分布式任務(wù)管理系統(tǒng)中檢查點(diǎn)的設(shè)計(jì)
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        国产猛烈高潮尖叫视频免费| 国产亚洲精品综合99久久| 女女同性av一区二区三区| 久久九九精品国产av| 无码丰满熟妇一区二区| 免费一区二区三区久久| 国产精品无码久久AⅤ人妖| 精品人妻少妇丰满久久久免| 亚洲人精品午夜射精日韩| 亚洲日韩精品欧美一区二区| 毛片无遮挡高清免费久久| 中文字幕av一区二区三区诱惑| 国产亚洲成性色av人片在线观| 正在播放东北夫妻内射| 狠狠躁夜夜躁AV网站中文字幕| 精品在线视频免费在线观看视频| 久久久亚洲熟妇熟女av| 四虎影视免费永久在线观看| 亚洲国产一区二区三区网| 人妻熟女妇av北条麻记三级| 国产av剧情一区二区三区| 亚洲av日韩av无码污污网站| 无码AV高潮喷水无码专区线| 亚洲图文一区二区三区四区| 亚洲av片无码久久五月| 韩国无码av片在线观看网站| 国产熟女精品一区二区三区| 精品国产制服丝袜高跟| 视频二区精品中文字幕| 亚洲乱妇熟女爽到高潮视频高清| 国产免费艾彩sm调教视频| 北条麻妃毛片在线视频| 久久一二三四区中文字幕| 操风骚人妻沉沦中文字幕| 亚洲av成人无码网站…| 丝袜AV在线一区二区三区| 日韩人妻高清福利视频| 在线免费观看黄色国产强暴av| 国产情侣久久久久aⅴ免费| 色综合久久精品中文字幕| 91精品国产高清久久福利|