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

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

一分鐘了解,預(yù)寫(xiě)日志 WAL 的核心思路...

來(lái)源: 責(zé)編: 時(shí)間:2024-07-03 17:25:28 161觀看
導(dǎo)讀上一篇《刷盤(pán),還是不刷盤(pán),是一個(gè)問(wèn)題》中我們遇到了哪些問(wèn)題?(1) 已提交事務(wù)+未提交事務(wù)的ACID特性怎么保證?畫(huà)外音:上一篇中遇到的問(wèn)題,主要是原子性與持久性。(2) 數(shù)據(jù)庫(kù)崩潰,怎么實(shí)施故障恢復(fù)?(3) 每次都刷盤(pán)隨機(jī)寫(xiě),性能低,

上一篇《刷盤(pán),還是不刷盤(pán),是一個(gè)問(wèn)題》中我們遇到了哪些問(wèn)題?eh328資訊網(wǎng)——每日最新資訊28at.com

(1) 已提交事務(wù)+未提交事務(wù)的ACID特性怎么保證?eh328資訊網(wǎng)——每日最新資訊28at.com

畫(huà)外音:上一篇中遇到的問(wèn)題,主要是原子性與持久性。eh328資訊網(wǎng)——每日最新資訊28at.com

(2) 數(shù)據(jù)庫(kù)崩潰,怎么實(shí)施故障恢復(fù)?eh328資訊網(wǎng)——每日最新資訊28at.com

(3) 每次都刷盤(pán)隨機(jī)寫(xiě),性能低,怎么提高數(shù)據(jù)庫(kù)性能?eh328資訊網(wǎng)——每日最新資訊28at.com

畫(huà)外音:正常情況下,不需要每個(gè)事務(wù)提交,都進(jìn)行刷盤(pán)。eh328資訊網(wǎng)——每日最新資訊28at.com

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

要提升隨機(jī)寫(xiě)性能,最容易想到的,就是利用高性能的順序?qū)懭罩荆涗浭聞?wù)中的一些信息,來(lái)實(shí)現(xiàn)已提交事務(wù)的數(shù)據(jù)“要刷盤(pán)”,未提交事務(wù)的數(shù)據(jù)“不刷盤(pán)”,以及實(shí)現(xiàn)故障恢復(fù)。eh328資訊網(wǎng)——每日最新資訊28at.com

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

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

這個(gè)順序?qū)懙娜罩荆涗浭裁磧?nèi)容呢?

事務(wù)中,對(duì)數(shù)據(jù)庫(kù)的寫(xiě)操作。eh328資訊網(wǎng)——每日最新資訊28at.com

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

如何來(lái)標(biāo)識(shí)寫(xiě)操作的時(shí)序呢?

每條日志記錄會(huì)有一個(gè)遞增的日志序列號(hào)(log sequence number,LSN),唯一標(biāo)識(shí)一條日志記錄。eh328資訊網(wǎng)——每日最新資訊28at.com

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

還有一種特殊的日志記錄,叫檢查點(diǎn)(checkpoint)。eh328資訊網(wǎng)——每日最新資訊28at.com

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

檢查點(diǎn)記錄了某一個(gè)時(shí)刻,緩沖池(buffer pool)中所有數(shù)據(jù)頁(yè)(page)的狀態(tài)信息。eh328資訊網(wǎng)——每日最新資訊28at.com

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

有了檢查點(diǎn)和順序?qū)懭罩荆覀兙涂梢酝ㄟ^(guò):eh328資訊網(wǎng)——每日最新資訊28at.com

  • 重放(redo)已提交事務(wù)的操作;
  • 取消(undo)未提交事務(wù)的操作;
  • 順序?qū)懱娲S機(jī)寫(xiě);

來(lái)解決,上面提到的三大難題。eh328資訊網(wǎng)——每日最新資訊28at.com

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

這,就是我們今天要聊的核心技術(shù),預(yù)寫(xiě)日志(write-ahead logging,WAL)。eh328資訊網(wǎng)——每日最新資訊28at.com

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

預(yù)寫(xiě)日志不僅僅是一種日志,更像是一種模式,一種協(xié)議,它要求在進(jìn)行數(shù)據(jù)寫(xiě)入操作時(shí),必須先寫(xiě)入操作日志。eh328資訊網(wǎng)——每日最新資訊28at.com

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

預(yù)寫(xiě)日志的分層結(jié)構(gòu)是怎么樣的?

如同數(shù)據(jù)的內(nèi)存-磁盤(pán)兩層結(jié)構(gòu)一樣,為了提升性能,預(yù)寫(xiě)日志也分為內(nèi)存-磁盤(pán)兩層結(jié)構(gòu):eh328資訊網(wǎng)——每日最新資訊28at.com

  • 內(nèi)存層:WAL buffer
  • 磁盤(pán)層:WAL log file

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

預(yù)寫(xiě)日志會(huì)記錄哪些信息呢?

還是之前那個(gè)事務(wù)T1:eh328資訊網(wǎng)——每日最新資訊28at.com

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

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

    開(kāi)始事務(wù)
  • 讀取記錄A的值(假設(shè)A=1)
  • 修改記錄A的值(假設(shè)修改為2)
  • 提交事務(wù)

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

預(yù)寫(xiě)日志首先會(huì)記錄,T1事務(wù)開(kāi)始:eh328資訊網(wǎng)——每日最新資訊28at.com

LSN=0:<T1, BEGIN>eh328資訊網(wǎng)——每日最新資訊28at.com

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

讀取A的值是一個(gè)讀操作,不需要進(jìn)行記錄。eh328資訊網(wǎng)——每日最新資訊28at.com

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

修改記錄A的值是一個(gè)寫(xiě)操作,需要進(jìn)行記錄,而且要記錄修改前的值,與修改后的值,類似于:eh328資訊網(wǎng)——每日最新資訊28at.com

LSN=1:<T1, A, 1, 2>eh328資訊網(wǎng)——每日最新資訊28at.com

以方便未來(lái)進(jìn)行redo與undo(如上圖中的屎黃色1)。eh328資訊網(wǎng)——每日最新資訊28at.com

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

接下來(lái),事務(wù)會(huì)對(duì)緩沖池中的數(shù)據(jù)進(jìn)行修改(如上圖中的屎黃色2)。eh328資訊網(wǎng)——每日最新資訊28at.com

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

到目前為止,預(yù)寫(xiě)日志都還是寫(xiě)在buffer中,并沒(méi)有刷到磁盤(pán)上。eh328資訊網(wǎng)——每日最新資訊28at.com

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

事務(wù)提交時(shí),預(yù)寫(xiě)日志,以及緩沖池會(huì)發(fā)生什么?

首先,T1事務(wù)提交,也會(huì)記錄到buffer中:eh328資訊網(wǎng)——每日最新資訊28at.com

LSN=2:<T1, COMMIT>eh328資訊網(wǎng)——每日最新資訊28at.com

但這樣,還遠(yuǎn)遠(yuǎn)不夠。eh328資訊網(wǎng)——每日最新資訊28at.com

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

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

預(yù)寫(xiě)日志,必須全部從buffer里刷到磁盤(pán)上,也就是日志文件中,事務(wù)才能標(biāo)記上“已提交”,并返回給應(yīng)用程序。eh328資訊網(wǎng)——每日最新資訊28at.com

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

沒(méi)錯(cuò),只要預(yù)寫(xiě)日志從buffer刷到磁盤(pán),而不需要數(shù)據(jù)從buffer刷到磁盤(pán),就能返回應(yīng)用程序,事務(wù)提交成功。eh328資訊網(wǎng)——每日最新資訊28at.com

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

至于數(shù)據(jù)什么時(shí)候從buffer刷回磁盤(pán),這取決于緩沖池刷盤(pán)策略,例如:隔一段時(shí)間異步刷盤(pán)(如上圖中的屎黃色便簽)。eh328資訊網(wǎng)——每日最新資訊28at.com

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

這,就是預(yù)寫(xiě)日志的核心思路。eh328資訊網(wǎng)——每日最新資訊28at.com

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

總結(jié)與思考:

(1) 日志序列號(hào)(log sequence number,LSN),唯一標(biāo)識(shí)一條日志記錄,遞增;eh328資訊網(wǎng)——每日最新資訊28at.com

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

(2) 檢查點(diǎn)(checkpoint),記錄了某一個(gè)時(shí)刻,緩沖池(buffer pool)中所有數(shù)據(jù)頁(yè)(page)的狀態(tài)信息。eh328資訊網(wǎng)——每日最新資訊28at.com

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

(3) 預(yù)寫(xiě)日志記錄什么核心信息?eh328資訊網(wǎng)——每日最新資訊28at.com

  • 事務(wù)開(kāi)始
  • 事務(wù)結(jié)束(提交/回滾)
  • 事務(wù)的寫(xiě)操作,修改前/修改后的值

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

(4) 數(shù)據(jù)庫(kù)何時(shí)能向應(yīng)用程序返回“事務(wù)成功”?eh328資訊網(wǎng)——每日最新資訊28at.com

預(yù)寫(xiě)日志刷盤(pán)成功之后。eh328資訊網(wǎng)——每日最新資訊28at.com

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

(5) 上一篇《刷盤(pán),還是不刷盤(pán),是一個(gè)問(wèn)題》結(jié)尾的問(wèn)題:在數(shù)據(jù)庫(kù)返回應(yīng)用程序事務(wù)成功之前,要不要將數(shù)據(jù)刷回磁盤(pán)?eh328資訊網(wǎng)——每日最新資訊28at.com

只要有預(yù)寫(xiě)日志機(jī)制,只需要預(yù)寫(xiě)日志刷盤(pán),不需要數(shù)據(jù)刷盤(pán)。eh328資訊網(wǎng)——每日最新資訊28at.com

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

新的場(chǎng)景出現(xiàn)了:如果數(shù)據(jù)庫(kù)崩了,怎么利用檢查點(diǎn)(checkpoint)以及預(yù)寫(xiě)日志,來(lái)進(jìn)行刷盤(pán)和數(shù)據(jù)恢復(fù)呢?讓你來(lái)設(shè)計(jì),你會(huì)怎么做?eh328資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-98559-0.html一分鐘了解,預(yù)寫(xiě)日志 WAL 的核心思路...

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

上一篇: 掌握 Python:15 個(gè)關(guān)于字符串操作的神級(jí)單行代碼

下一篇: len() 函數(shù)妙用:十個(gè)增強(qiáng) Python 程序可讀性的實(shí)踐

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 六大權(quán)益!華為8月服務(wù)日開(kāi)啟:手機(jī)免費(fèi)貼膜、維修免人工費(fèi)

    8月5日消息,一年一度的華為開(kāi)發(fā)者大會(huì)2023(Together)日前在松山湖拉開(kāi)帷幕,與此同時(shí),華為8月服務(wù)日也式開(kāi)啟,到店可享六大專屬權(quán)益。華為用戶可在華為商城Ap
  • 0糖0卡0脂 旭日森林仙草烏龍茶優(yōu)惠:15瓶到手29元

    旭日森林無(wú)糖仙草烏龍茶510ml*15瓶平時(shí)要賣(mài)為79.9元,今日下單領(lǐng)取50元優(yōu)惠券,到手價(jià)為29.9元。產(chǎn)品規(guī)格:0糖0卡0脂,添加草本仙草汁,清涼爽口,富含茶多酚,保留
  • 一篇聊聊Go錯(cuò)誤封裝機(jī)制

    %w 是用于錯(cuò)誤包裝(Error Wrapping)的格式化動(dòng)詞。它是用于 fmt.Errorf 和 fmt.Sprintf 函數(shù)中的一個(gè)特殊格式化動(dòng)詞,用于將一個(gè)錯(cuò)誤(或其他可打印的值)包裝在一個(gè)新的錯(cuò)誤中。使
  • 微信語(yǔ)音大揭秘:為什么禁止轉(zhuǎn)發(fā)?

    大家好,我是你們的小米。今天,我要和大家聊一個(gè)有趣的話題:為什么微信語(yǔ)音不可以轉(zhuǎn)發(fā)?這是一個(gè)我們經(jīng)常在日常使用中遇到的問(wèn)題,也是一個(gè)讓很多人好奇的問(wèn)題。讓我們一起來(lái)揭開(kāi)這
  • 重估百度丨“晚熟”的百度云,能等到春天嗎?

    &copy;自象限原創(chuàng)作者|程心排版|王喻可2016年7月13日,百度云計(jì)算戰(zhàn)略發(fā)布會(huì)在北京舉行,宣告著百度智能云的正式啟程。彼時(shí)的會(huì)場(chǎng)座無(wú)虛席,甚至排隊(duì)排到了門(mén)外,在場(chǎng)的所有人幾乎都
  • 騰訊蓋樓,字節(jié)拆墻

    來(lái)源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之&ldquo;想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗(yàn)嗎?一起上晶核,即刻暴打!&rdquo;曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 騰訊VS網(wǎng)易,最卷游戲暑期檔,誰(shuí)能笑到最后?

    作者:無(wú)銹缽來(lái)源:財(cái)經(jīng)無(wú)忌7月16日晚,上海1862時(shí)尚藝術(shù)中心。伴隨著幻象的精準(zhǔn)命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰(zhàn)隊(duì)以絕對(duì)的優(yōu)勢(shì)戰(zhàn)勝了BLG戰(zhàn)隊(duì),拿下了總決
  • 年輕人的“職場(chǎng)羞恥感”,無(wú)處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來(lái)源:燃次元&ldquo;人在職場(chǎng),應(yīng)該選擇什么樣的著裝?&rdquo;近日,在網(wǎng)絡(luò)上,一個(gè)與著裝相關(guān)的帖子引發(fā)關(guān)注,在該帖子里,一位在高級(jí)寫(xiě)字樓亞洲金
  • 華為開(kāi)發(fā)者大會(huì)2023日程公開(kāi):開(kāi)設(shè)鴻蒙HarmonyOS 4體驗(yàn)區(qū)

    IT之家 7 月 31 日消息,華為今日公布了 HDC.Together 開(kāi)發(fā)者大會(huì) 2023 的詳細(xì)日程。整場(chǎng)大會(huì)將于 8 月 4 日-6 日之間舉行,屆時(shí)將發(fā)布最新一代鴻蒙 H
Top 主站蜘蛛池模板: 广元市| 龙岩市| 墨玉县| 香格里拉县| 唐河县| 达州市| 驻马店市| 南丹县| 宜都市| 习水县| 渝北区| 孝感市| 萨迦县| 开化县| 清原| 礼泉县| 磐安县| 江口县| 大荔县| 土默特右旗| 佛坪县| 浙江省| 醴陵市| 成武县| 沅江市| 齐齐哈尔市| 台安县| 凉城县| 德安县| 黄浦区| 堆龙德庆县| 遂溪县| 淮滨县| 荣成市| 九台市| 四平市| 开封县| 正宁县| 鄄城县| 旺苍县| 保亭|