日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

ARIES,數(shù)據(jù)恢復(fù)算法,萬變不離其宗...

來源: 責(zé)編: 時間:2024-07-05 09:07:16 1115觀看
導(dǎo)讀今天來聊兩個問題:如果緩沖池(buffer pool)滿了,哪些數(shù)據(jù)頁(page)要刷盤,哪些數(shù)據(jù)頁不刷盤?數(shù)據(jù)庫崩了,怎么利用檢查點(diǎn)(checkpoint)與預(yù)寫日志恢復(fù)數(shù)據(jù)?問題一:緩沖池滿時的刷盤策略首先來回顧一下《預(yù)寫日志W(wǎng)AL的核心思路...》中

今天來聊兩個問題:LHR28資訊網(wǎng)——每日最新資訊28at.com

  • 如果緩沖池(buffer pool)滿了,哪些數(shù)據(jù)頁(page)要刷盤,哪些數(shù)據(jù)頁不刷盤?
  • 數(shù)據(jù)庫崩了,怎么利用檢查點(diǎn)(checkpoint)與預(yù)寫日志恢復(fù)數(shù)據(jù)?

LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

問題一:緩沖池滿時的刷盤策略

LHR28資訊網(wǎng)——每日最新資訊28at.com

首先來回顧一下《預(yù)寫日志W(wǎng)AL的核心思路...》中相關(guān)的一些知識點(diǎn):LHR28資訊網(wǎng)——每日最新資訊28at.com

  • 檢查點(diǎn)記錄了某一個時刻,緩沖池中所有數(shù)據(jù)頁的狀態(tài)信息;
  • 預(yù)寫日志(write-ahead logging,WAL)中記錄了,事務(wù)在執(zhí)行過程中,對數(shù)據(jù)庫進(jìn)行的所有寫操作;
  • 日志序列號(log sequence number,LSN),可以標(biāo)識所有操作序列時序的依據(jù);

LHR28資訊網(wǎng)——每日最新資訊28at.com

再來介紹兩個新的知識點(diǎn):LHR28資訊網(wǎng)——每日最新資訊28at.com

其一,在數(shù)據(jù)庫中,需要存儲一個信息:flushed-LSN:預(yù)寫日志已刷盤的最大LSN。LHR28資訊網(wǎng)——每日最新資訊28at.com

畫外音:這是日志刷盤。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

其二,每個數(shù)據(jù)頁X,還要包含兩個信息:LHR28資訊網(wǎng)——每日最新資訊28at.com

  • page-LSN:最近修改數(shù)據(jù)頁的LSN。畫外音:每一頁數(shù)據(jù),都會存儲這個LSN。
  • rec-LSN:上次刷盤以來,最早修改數(shù)據(jù)頁的LSN。畫外音:每一頁數(shù)據(jù),也會存儲這個LSN。

這是兩個邊界LSN。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

也就是說,在[rec-LSN, page-LSN]之間的所有操作,都將這一頁數(shù)據(jù)變成了臟數(shù)據(jù)。LHR28資訊網(wǎng)——每日最新資訊28at.com

畫外音:這是數(shù)據(jù)頁刷盤。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

如果flushed-LSN >= page-LSN(X)LHR28資訊網(wǎng)——每日最新資訊28at.com

說明:我們可以將頁面X刷到磁盤上,因?yàn)樵谀侵暗乃腥罩荆家呀?jīng)刷到了磁盤上。LHR28資訊網(wǎng)——每日最新資訊28at.com

畫外音:這是WAL原則,先刷日志,才能刷數(shù)據(jù)。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

反之,如果flushed-LSN =< page-LSN(X)LHR28資訊網(wǎng)——每日最新資訊28at.com

說明:有些對數(shù)據(jù)頁X的操作,還沒有被刷到預(yù)寫日志磁盤上,此時我們不能將數(shù)據(jù)頁X刷到磁盤。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

如上圖例子所示,共有四個事務(wù):LHR28資訊網(wǎng)——每日最新資訊28at.com

  • T1,將A由1改為2;
  • T2,將A由2改為3;
  • T3,將A由3改為4;
  • T4,將A由4改為9;

LHR28資訊網(wǎng)——每日最新資訊28at.com

對于預(yù)寫日志來說:LHR28資訊網(wǎng)——每日最新資訊28at.com

  • LSN 001-010都已經(jīng)刷到磁盤上
  • LSN 011-013都還在WAL buffer里

LHR28資訊網(wǎng)——每日最新資訊28at.com

對于數(shù)據(jù)庫來說:LHR28資訊網(wǎng)——每日最新資訊28at.com

  • flushed-LSN=10
  • 這是預(yù)寫日志已刷盤的最大LSN。

LHR28資訊網(wǎng)——每日最新資訊28at.com

對于數(shù)據(jù)頁X來說:LHR28資訊網(wǎng)——每日最新資訊28at.com

  • page-LSN(X)=12
  • 數(shù)據(jù)buffer里,T4已經(jīng)將A由4改為了9。

LHR28資訊網(wǎng)——每日最新資訊28at.com

此時,flushed-LSN =< page-LSN(X)LHR28資訊網(wǎng)——每日最新資訊28at.com

于是,我們不能將數(shù)據(jù)頁X刷到磁盤,因?yàn)轭A(yù)寫日志還沒有完成。我們只能刷盤其他數(shù)據(jù)頁,來騰出緩沖池的內(nèi)存空間哈。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

問題二:數(shù)據(jù)庫崩潰時的數(shù)據(jù)恢復(fù)算法

LHR28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)庫崩潰后,所有內(nèi)存buffer(WAL buffer以及buffer pool)中的數(shù)據(jù)都會丟失,我們?nèi)绾卫脵z查點(diǎn)與預(yù)寫日志,對數(shù)據(jù)進(jìn)行恢復(fù)呢?LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

最常見故障恢復(fù)(crash recovery)算法是ARIES,Algorithms for Recovery and Isolation Exploiting Semantics,語義恢復(fù)與隔離算法。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

這個算法的核心包含三個階段:LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

階段一,分析階段:分析預(yù)寫日志,對事務(wù)進(jìn)行分類。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

分析哪些預(yù)寫日志?LHR28資訊網(wǎng)——每日最新資訊28at.com

假設(shè)刷新檢查點(diǎn)日志的時刻是LSN,需要分析所有檢查點(diǎn)LSN之后的預(yù)寫日志。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

如何對事務(wù)進(jìn)行分類?LHR28資訊網(wǎng)——每日最新資訊28at.com

從檢查點(diǎn)LSN開始,從前往后掃描預(yù)寫日志:LHR28資訊網(wǎng)——每日最新資訊28at.com

  • 每條日志記錄對應(yīng)事務(wù)Tx,將Tx加入undo-Tx集合;
  • 遇到<Ti, Commit>記錄,將Ti移出undo-Tx集合;

LHR28資訊網(wǎng)——每日最新資訊28at.com

階段二,Redo階段:重做檢查點(diǎn)LSN之后,預(yù)寫日志中的所有操作。LHR28資訊網(wǎng)——每日最新資訊28at.com

從檢查點(diǎn)LSN開始,從前往后掃描預(yù)寫日志:LHR28資訊網(wǎng)——每日最新資訊28at.com

遇到<Ti, update>記錄,修改檢查點(diǎn)中對應(yīng)的數(shù)據(jù)頁X,將對應(yīng)的數(shù)據(jù)進(jìn)行修改,如此一來,就恢復(fù)到了數(shù)據(jù)庫崩潰前的緩沖池?cái)?shù)據(jù)頁鏡像。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

這些數(shù)據(jù)頁能全部刷盤嗎?LHR28資訊網(wǎng)——每日最新資訊28at.com

不能,沒有提交的事務(wù)的操作,必須進(jìn)行回滾。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

階段三,Undo階段:對于沒有提交的事務(wù),恢復(fù)這些事務(wù)對數(shù)據(jù)頁的修改。LHR28資訊網(wǎng)——每日最新資訊28at.com

從flushed-LSN開始,從后往前逆向掃描預(yù)寫日志,直到檢查點(diǎn)LSN:LHR28資訊網(wǎng)——每日最新資訊28at.com

遇到<Ti, update>記錄,如果Ti在undo-Tx集合中,就將對應(yīng)的數(shù)據(jù)頁進(jìn)行回滾修改,如此一來,所有未提交事務(wù)的修改,就進(jìn)行了回滾。LHR28資訊網(wǎng)——每日最新資訊28at.com

LHR28資訊網(wǎng)——每日最新資訊28at.com

ARIES算法是數(shù)據(jù)恢復(fù)的典型算法,很多消息系統(tǒng),存儲系統(tǒng),事務(wù)系統(tǒng)對算法進(jìn)行過效率改良,但其內(nèi)核,萬變不離其宗。思路,比結(jié)論更重要。LHR28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-98869-0.htmlARIES,數(shù)據(jù)恢復(fù)算法,萬變不離其宗...

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 為金融數(shù)字化轉(zhuǎn)型保駕護(hù)航,Testin云測助力金融科技升級

下一篇: 你應(yīng)該知道的主要軟件設(shè)計(jì)原則

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 西青区| 伊金霍洛旗| 新巴尔虎右旗| 南木林县| 华阴市| 孟村| 福鼎市| 聊城市| 敖汉旗| 乐至县| 巫溪县| 邵武市| 邯郸县| 息烽县| 汤原县| 通榆县| 靖西县| 富蕴县| 衢州市| 合山市| 成都市| 登封市| 莒南县| 洪湖市| 元朗区| 威远县| 株洲市| 龙江县| 五莲县| 舞阳县| 如东县| 桑植县| 绥棱县| 双桥区| 五大连池市| 呼伦贝尔市| 合肥市| 会东县| 曲阜市| 镇宁| 陇南市|