[發(fā)明專利]臟頁(yè)刷新方法和裝置、存儲(chǔ)介質(zhì)和電子設(shè)備有效
| 申請(qǐng)?zhí)枺?/td> | 202011367588.6 | 申請(qǐng)日: | 2020-11-30 |
| 公開(公告)號(hào): | CN112182010B | 公開(公告)日: | 2021-03-12 |
| 發(fā)明(設(shè)計(jì))人: | 邱海港 | 申請(qǐng)(專利權(quán))人: | 北京金山云網(wǎng)絡(luò)技術(shù)有限公司 |
| 主分類號(hào): | G06F16/23 | 分類號(hào): | G06F16/23;G06F16/215;G06F9/50 |
| 代理公司: | 北京華夏泰和知識(shí)產(chǎn)權(quán)代理有限公司 11662 | 代理人: | 劉曉燕 |
| 地址: | 100085 北京市海淀*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 刷新 方法 裝置 存儲(chǔ) 介質(zhì) 電子設(shè)備 | ||
本申請(qǐng)?zhí)峁┝艘环N臟頁(yè)刷新方法和裝置、存儲(chǔ)介質(zhì)和電子設(shè)備,其中,該方法包括:在存在未刷新到磁盤上的、與第一臟頁(yè)對(duì)應(yīng)的重做日志的情況下,創(chuàng)建與所述第一臟頁(yè)匹配的目標(biāo)臟頁(yè),其中,所述第一臟頁(yè)為臟頁(yè)鏈表中與第一數(shù)據(jù)頁(yè)對(duì)應(yīng)的臟頁(yè);將所述目標(biāo)臟頁(yè)刷新到目標(biāo)磁盤中的目標(biāo)位置,其中,所述目標(biāo)位置為與所述目標(biāo)磁盤中所述第一數(shù)據(jù)頁(yè)所處的第一位置不同的位置;將所述第一臟頁(yè)從所述臟頁(yè)鏈表中移除,并將所述目標(biāo)臟頁(yè)添加到目標(biāo)堆列表中。通過(guò)本申請(qǐng),解決了相關(guān)技術(shù)的臟頁(yè)刷新方式存在由于redo日志空間無(wú)法釋放導(dǎo)致的阻塞用戶線程的問(wèn)題。
技術(shù)領(lǐng)域
本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種臟頁(yè)刷新方法和裝置、存儲(chǔ)介質(zhì)和電子設(shè)備。
背景技術(shù)
在數(shù)據(jù)庫(kù)中,當(dāng)數(shù)據(jù)頁(yè)被第一次修改后,會(huì)把臟數(shù)據(jù)頁(yè)(臟頁(yè))添加到內(nèi)存緩存區(qū)(緩存池)的臟頁(yè)鏈表(flush_list)中,添加到臟頁(yè)鏈表中的臟數(shù)據(jù)頁(yè)可以被其他線程更新。臟頁(yè)鏈表中的臟頁(yè)可以按照一定順序被刷新(flush)到磁盤中,刷新的時(shí)機(jī)可以是周期性的。
在進(jìn)行數(shù)據(jù)頁(yè)修改時(shí),存儲(chǔ)引擎(位于服務(wù)器中)會(huì)將數(shù)據(jù)頁(yè)的變更操作記錄到redo(重做)日志中。在將臟頁(yè)鏈表中的臟頁(yè)刷新到磁盤時(shí),當(dāng)前頁(yè)的刷新操作需要在當(dāng)前頁(yè)最后一次修改的redo日志已經(jīng)刷新到磁盤之后才能執(zhí)行。
在數(shù)據(jù)庫(kù)服務(wù)中高并發(fā)更新場(chǎng)景下,在待刷新的當(dāng)前頁(yè)(臟頁(yè))為熱點(diǎn)數(shù)據(jù)頁(yè)時(shí),如果當(dāng)前頁(yè)最后一次更新的redo日志的日志序列號(hào)(Log Sequence Number,簡(jiǎn)稱為L(zhǎng)SN)大于已刷新到磁盤中的redo日志的LSN時(shí),則會(huì)造成當(dāng)前頁(yè)需要等待redo日志從內(nèi)存刷新到磁盤,而無(wú)法刷新到磁盤。而如果等待時(shí)間過(guò)長(zhǎng),造成last_checkpoint_lsn(最后一個(gè)刷新到磁盤上的數(shù)據(jù)頁(yè)第一次被修改時(shí)的LSN)無(wú)法向前推進(jìn),導(dǎo)致redo日志空間無(wú)法釋放,從而阻塞用戶線程,經(jīng)常出現(xiàn)用戶線程阻塞,甚至阻塞幾秒的情況,導(dǎo)致服務(wù)暫停,進(jìn)而導(dǎo)致服務(wù)性能嚴(yán)重下降。
因此,相關(guān)技術(shù)的臟頁(yè)刷新方式,存在由于redo日志空間無(wú)法釋放導(dǎo)致的阻塞用戶線程的問(wèn)題。
發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┝艘环N臟頁(yè)刷新方法和裝置、存儲(chǔ)介質(zhì)和電子設(shè)備,以至少解決相關(guān)技術(shù)的臟頁(yè)刷新方式存在由于redo日志空間無(wú)法釋放導(dǎo)致的阻塞用戶線程的問(wèn)題。
根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種臟頁(yè)刷新方法,包括:在存在未刷新到磁盤上的、與第一臟頁(yè)對(duì)應(yīng)的重做日志的情況下,創(chuàng)建與所述第一臟頁(yè)匹配的目標(biāo)臟頁(yè),其中,所述第一臟頁(yè)為臟頁(yè)鏈表中與第一數(shù)據(jù)頁(yè)對(duì)應(yīng)的臟頁(yè);將所述目標(biāo)臟頁(yè)刷新到目標(biāo)磁盤中的目標(biāo)位置,其中,所述目標(biāo)位置為與所述目標(biāo)磁盤中所述第一數(shù)據(jù)頁(yè)所處的第一位置不同的位置;將所述第一臟頁(yè)從所述臟頁(yè)鏈表中移除,并將所述目標(biāo)臟頁(yè)添加到目標(biāo)堆列表中。
可選地,在所述創(chuàng)建與所述第一臟頁(yè)匹配的目標(biāo)臟頁(yè)之前,所述方法還包括:確定所述第一臟頁(yè)的第一標(biāo)記,其中,所述第一標(biāo)記為臟頁(yè)最后一次更新的重做日志的日志序列號(hào);在所述第一臟頁(yè)的所述第一標(biāo)記大于目標(biāo)標(biāo)記的情況下,確定存在未刷新到磁盤上的、與所述第一臟頁(yè)對(duì)應(yīng)的重做日志,其中,所述目標(biāo)標(biāo)記為已刷新到磁盤上的重做日志的最大日志序列號(hào)。
可選地,在所述創(chuàng)建與所述第一臟頁(yè)匹配的目標(biāo)臟頁(yè)之前,所述方法還包括:按照第二標(biāo)記的順序,從所述臟頁(yè)鏈表中讀取出所述第一臟頁(yè),其中,所述第二標(biāo)記為臟頁(yè)第一次更新的重做日志的日志序列號(hào)。
可選地,所述將所述目標(biāo)臟頁(yè)添加到目標(biāo)堆列表中包括:將所述目標(biāo)臟頁(yè)的第二標(biāo)記配置為所述第一臟頁(yè)的第一標(biāo)記,其中,所述第一標(biāo)記為臟頁(yè)最后一次更新的重做日志的日志序列號(hào),所述第二標(biāo)記為臟頁(yè)第一次更新的重做日志的日志序列號(hào);將所述目標(biāo)臟頁(yè)添加到所述目標(biāo)堆列表,其中,所述目標(biāo)堆列表中的臟頁(yè)按照所述第二標(biāo)記的順序進(jìn)行排列。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京金山云網(wǎng)絡(luò)技術(shù)有限公司,未經(jīng)北京金山云網(wǎng)絡(luò)技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011367588.6/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 液晶顯示裝置及其驅(qū)動(dòng)方法
- 動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器DRAM的刷新方法、設(shè)備以及系統(tǒng)
- 一種DRAM刷新方法、裝置和系統(tǒng)
- 顯示系統(tǒng)
- 刷新車輛模塊的方法和裝置
- 刷新文件的生成方法及系統(tǒng)
- 動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器DRAM的刷新方法、設(shè)備以及系統(tǒng)
- 刷新控制方法、裝置及存儲(chǔ)介質(zhì)
- 用于半導(dǎo)體存儲(chǔ)器中的刷新操作的設(shè)備和方法
- 車輛控制器并行刷新方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 動(dòng)態(tài)存儲(chǔ)管理裝置及方法
- 一種存儲(chǔ)方法、服務(wù)器及存儲(chǔ)控制器
- 一種基于存儲(chǔ)系統(tǒng)的控制方法及裝置
- 一種信息的存儲(chǔ)控制方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 數(shù)據(jù)存儲(chǔ)方法、裝置、計(jì)算機(jī)設(shè)備以及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)存儲(chǔ)控制方法及裝置
- 存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)及存儲(chǔ)方法
- 物料存儲(chǔ)方法及系統(tǒng)
- 基于雙芯智能電表的數(shù)據(jù)分類存儲(chǔ)方法和裝置





