[發(fā)明專利]一種預(yù)寫式日志的處理方法、存儲(chǔ)介質(zhì)與設(shè)備在審
| 申請(qǐng)?zhí)枺?/td> | 202210641104.5 | 申請(qǐng)日: | 2022-06-07 |
| 公開(公告)號(hào): | CN114936215A | 公開(公告)日: | 2022-08-23 |
| 發(fā)明(設(shè)計(jì))人: | 冷建全;程強(qiáng) | 申請(qǐng)(專利權(quán))人: | 北京人大金倉信息技術(shù)股份有限公司 |
| 主分類號(hào): | G06F16/23 | 分類號(hào): | G06F16/23;G06F16/22;G06F3/06 |
| 代理公司: | 北京智匯東方知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11391 | 代理人: | 劉長江 |
| 地址: | 100102 北京市朝陽區(qū)容*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 預(yù)寫式 日志 處理 方法 存儲(chǔ) 介質(zhì) 設(shè)備 | ||
本發(fā)明涉及數(shù)據(jù)庫技術(shù),特別是涉及一種預(yù)寫式日志的處理方法、存儲(chǔ)介質(zhì)與設(shè)備。該處理方法包括:將數(shù)據(jù)庫運(yùn)行中產(chǎn)生的多條WAL記錄復(fù)制到WAL緩存中;利用預(yù)先構(gòu)建的哈希表記錄多條WAL的復(fù)制狀態(tài),其中,哈希表的每一個(gè)哈希桶內(nèi)記錄有和其對(duì)應(yīng)的WAL記錄的識(shí)別號(hào)以及標(biāo)示著是否完成復(fù)制的標(biāo)記;在將WAL緩存刷寫到磁盤文件中之前,根據(jù)待提交事務(wù)的每一條WAL記錄的識(shí)別號(hào)查找和其對(duì)應(yīng)的哈希桶,根據(jù)查找到的哈希桶中的標(biāo)記順序查看待提交事務(wù)的每一條WAL記錄的復(fù)制狀態(tài)。本發(fā)明采用哈希表記錄WAL記錄復(fù)制到WAL緩存的狀態(tài),實(shí)現(xiàn)了在刷寫WAL緩存之前,無需遍歷,僅僅通過哈希索引即可有序、快速地查看待提交事務(wù)的每一條WAL記錄的復(fù)制狀態(tài),提高了數(shù)據(jù)庫的性能。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫技術(shù),特別是涉及一種預(yù)寫式日志的處理方法、存儲(chǔ)介質(zhì)與設(shè)備。
背景技術(shù)
在數(shù)據(jù)庫系統(tǒng)中,預(yù)寫式日志(Write-Ahead Logging,WAL)技術(shù)是保證事務(wù)具有原子性和持久性的關(guān)鍵技術(shù)。數(shù)據(jù)庫系統(tǒng)會(huì)將所有事務(wù)對(duì)數(shù)據(jù)庫的所有更新操作均記錄并在其被應(yīng)用前寫入日志文件。正由于WAL技術(shù)的作用,數(shù)據(jù)庫需要在事務(wù)提交前將相關(guān)的WAL統(tǒng)一刷寫到磁盤中,確保數(shù)據(jù)庫崩潰時(shí),數(shù)據(jù)庫系統(tǒng)可以重做或撤銷。現(xiàn)在數(shù)據(jù)庫系統(tǒng)的WAL已經(jīng)成為數(shù)據(jù)庫系統(tǒng)的一大瓶頸。
現(xiàn)有的WAL技術(shù)通常采用數(shù)組結(jié)構(gòu)的方法,來記錄WAL復(fù)制到緩存的狀態(tài)。這種方法允許一定的并發(fā)復(fù)制,在復(fù)制的同時(shí)利用數(shù)組記錄WAL復(fù)制到緩存的狀態(tài)。在事務(wù)提交時(shí),阻塞復(fù)制進(jìn)程,遍歷數(shù)組,查看物理位置在當(dāng)前提交事務(wù)之前,當(dāng)前提交事務(wù)的WAL是否都已經(jīng)完成復(fù)制。如果均完成復(fù)制,則順序的將它們刷寫到磁盤。如果存在一條未拷貝的WAL記錄,則需要停止阻塞復(fù)制進(jìn)程,保持事務(wù)未提交狀態(tài)不變,直至等到當(dāng)前提交事務(wù)的WAL的記錄均完成復(fù)制后,才能繼續(xù)刷寫。
然而,在現(xiàn)有的采用數(shù)組結(jié)構(gòu)記錄WAL復(fù)制到緩存的狀態(tài)的WAL技術(shù)中,由于數(shù)組結(jié)構(gòu)對(duì)WAL復(fù)制和遍歷刷寫過程存在制約關(guān)系,會(huì)出現(xiàn)復(fù)制過程無法采用高并發(fā)的問題。另外,由于數(shù)組結(jié)構(gòu)在刷寫WAL時(shí)會(huì)采用無順序的方式,因此需要遍歷全部數(shù)組,導(dǎo)致遍歷刷寫過程代價(jià)大。以上可見,傳統(tǒng)方法對(duì)WAl的處理存在弊端。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明提供一種預(yù)寫式日志的處理方法、存儲(chǔ)介質(zhì)與設(shè)備。
本發(fā)明的一個(gè)目的是要提供一種可以無需遍歷、快速地查看WAL復(fù)制情況的預(yù)寫式日志的處理方法。
本發(fā)明一個(gè)進(jìn)一步的目的是提高查看待提交事務(wù)的每一條WAL記錄的復(fù)制狀態(tài)的準(zhǔn)確性,從而提高數(shù)據(jù)庫管理系統(tǒng)的整體性能。
本發(fā)明的另一個(gè)進(jìn)一步的目的是要一次性將盡可能多的WAL緩存刷寫到磁盤文件中,提升WAL刷寫效率。
特別地,本發(fā)明提供了一種預(yù)寫式日志的處理方法,其包括:
將數(shù)據(jù)庫運(yùn)行中產(chǎn)生的多條預(yù)寫式日志記錄復(fù)制到預(yù)寫式日志緩存中;
利用數(shù)據(jù)庫管理系統(tǒng)中預(yù)先構(gòu)建的哈希表記錄多條預(yù)寫式日志的復(fù)制狀態(tài),其中,哈希表的每一個(gè)哈希桶與一條預(yù)寫式日志記錄對(duì)應(yīng)設(shè)置,并且每一個(gè)哈希桶內(nèi)記錄有和其對(duì)應(yīng)的預(yù)寫式日志記錄的識(shí)別號(hào)以及標(biāo)示著該條預(yù)寫式日志記錄是否完成復(fù)制的標(biāo)記;
在將預(yù)寫式日志緩存刷寫到磁盤文件中之前,根據(jù)待提交事務(wù)的每一條預(yù)寫式日志記錄的識(shí)別號(hào)在哈希表中查找和其對(duì)應(yīng)的哈希桶,并根據(jù)查找到的哈希桶中的標(biāo)記順序查看待提交事務(wù)的每一條預(yù)寫式日志記錄的復(fù)制狀態(tài)。
可選地,每一條預(yù)寫式日志記錄的識(shí)別號(hào)包括該條預(yù)寫式日志記錄的寫入磁盤文件的起始地址和結(jié)束地址,其中,每個(gè)待提交事務(wù)的非首條預(yù)寫式日志記錄的起始地址為同一待提交事務(wù)的上一條預(yù)寫式日志記錄的結(jié)束地址與預(yù)設(shè)長度之和;并且
根據(jù)待提交事務(wù)的每一條預(yù)寫式日志記錄的識(shí)別號(hào)在哈希表中查找和其對(duì)應(yīng)的哈希桶,并根據(jù)查找到的哈希桶中的標(biāo)記順序查看待提交事務(wù)的每一條預(yù)寫式日志記錄的復(fù)制狀態(tài)的步驟包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京人大金倉信息技術(shù)股份有限公司,未經(jīng)北京人大金倉信息技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210641104.5/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 一種用于嵌入式系統(tǒng)的二級(jí)緩存控制方法及裝置
- 能耗感知的協(xié)同式自適應(yīng)預(yù)取方法和中間件
- 一種低寫功耗的兩端口靜態(tài)隨機(jī)存儲(chǔ)器
- 一種低寫功耗的兩端口靜態(tài)隨機(jī)存儲(chǔ)器
- 數(shù)據(jù)儲(chǔ)存裝置及其數(shù)據(jù)維護(hù)方法
- 一種磁盤扇區(qū)的控制方法和裝置
- 用于預(yù)寫式日志歸檔的方法及設(shè)備
- 一種面向相變存儲(chǔ)器的寫請(qǐng)求優(yōu)化裝置
- 多主共享存儲(chǔ)數(shù)據(jù)庫的寫-寫沖突檢測(cè)
- 一種實(shí)時(shí)變換數(shù)據(jù)存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(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ì)





