[發(fā)明專利]一種值日志系統(tǒng)的空間回收方法在審
| 申請(qǐng)?zhí)枺?/td> | 202210167721.6 | 申請(qǐng)日: | 2022-02-23 |
| 公開(公告)號(hào): | CN114546886A | 公開(公告)日: | 2022-05-27 |
| 發(fā)明(設(shè)計(jì))人: | 王學(xué)海;付新;姜久文;許雄凌;張靜修 | 申請(qǐng)(專利權(quán))人: | 達(dá)夢(mèng)數(shù)據(jù)技術(shù)(江蘇)有限公司 |
| 主分類號(hào): | G06F12/02 | 分類號(hào): | G06F12/02;G06F9/50;G06F3/06;G06F16/18 |
| 代理公司: | 南京蘇高專利商標(biāo)事務(wù)所(普通合伙) 32204 | 代理人: | 王安琪 |
| 地址: | 215000 江蘇省蘇州市吳中經(jīng)濟(jì)開*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 值日 系統(tǒng) 空間 回收 方法 | ||
本發(fā)明公開了一種值日志系統(tǒng)的空間回收方法,包括回卷回收與就地回收兩種方法。本發(fā)明能夠在不阻塞聯(lián)機(jī)事務(wù)的情況下,實(shí)現(xiàn)對(duì)值日志系統(tǒng)的空間回收。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其是一種值日志系統(tǒng)的空間回收方法。
背景技術(shù)
傳統(tǒng)數(shù)據(jù)庫的空間回收,歸根結(jié)底是關(guān)系表的數(shù)據(jù)的回收。關(guān)系表數(shù)據(jù)即可以存儲(chǔ)在共享的表空間里,也可以是單獨(dú)文件存儲(chǔ)。一般情況下,表單獨(dú)存放的時(shí)候,可以通過DROP語句直接刪除,而如果放在共享的表空間,即使刪除了表也無法回收空間(特指磁盤空間)。
一般情況下,很少直接刪除表情況,更多的時(shí)候只是想刪除一些數(shù)據(jù)記錄,但是這樣往往會(huì)遇到這樣的問題:表中的數(shù)據(jù)被刪除了,但是空間卻沒有回收。
表數(shù)據(jù)記錄的刪除大多采用邏輯刪除,打個(gè)刪除標(biāo)記,表示空間可以復(fù)用。只是邏輯刪除,如果下一條區(qū)間內(nèi)的記錄插入,可以直接復(fù)用段空間。同理,如果我們清除這個(gè)數(shù)據(jù)頁,那么這個(gè)數(shù)據(jù)頁都會(huì)被標(biāo)記刪除,等到下一個(gè)數(shù)據(jù)頁加載的時(shí)候就可以直接使用這個(gè)空頁。而當(dāng)兩個(gè)相鄰的數(shù)據(jù)頁上被刪除了記錄很多,也就是頁的利用率都很低的時(shí)候,系統(tǒng)就會(huì)自動(dòng)合并兩個(gè)頁的數(shù)據(jù),并且標(biāo)記其中一個(gè)為可復(fù)用。
綜上所述,不難理解,使用delete刪除的數(shù)據(jù)只是把這塊空間標(biāo)記為可復(fù)用,是一種邏輯上的刪除,并沒有實(shí)際減少磁盤空間的占用。
不僅僅刪除數(shù)據(jù)記錄會(huì)造成空洞,插入數(shù)據(jù)記錄也會(huì)。如果數(shù)據(jù)是按照索引遞增順序插入的,那么索引是緊湊的。但如果數(shù)據(jù)是隨機(jī)插入的,就可能造成索引的數(shù)據(jù)頁分裂。分裂的就會(huì)出現(xiàn)兩個(gè)半滿頁,存在大量空間浪費(fèi)。也就是說,經(jīng)過大量增刪改的表,都是可能是存在空洞的。所以,如果能夠把這些空洞去掉,就能達(dá)到收縮表空間的目的。
常用解決方案:通過重建表達(dá)到回收空間的目的。把表的數(shù)據(jù)導(dǎo)出一份,重建一張同構(gòu)表,然后把數(shù)據(jù)導(dǎo)入重構(gòu)表。由于重新導(dǎo)入是有序插入,上文中的碎片就不會(huì)存在達(dá)到了空間收縮的目的。為了回收磁盤空間,大多數(shù)情況下需要將表搬遷到新的表空間,重建索引,然后通過刪除舊的表空間才能最終達(dá)到回收表空間的目的。
現(xiàn)有的系統(tǒng)空間回收,需要通過重建的方式才能完成徹底回收,且回收期間表是無法提供服務(wù)的,同時(shí)回收需要消耗大量的計(jì)算和IO資源。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種值日志系統(tǒng)的空間回收方法,在不阻塞聯(lián)機(jī)事務(wù)的情況下,實(shí)現(xiàn)對(duì)值日志系統(tǒng)的空間回收。
為解決上述技術(shù)問題,本發(fā)明提供一種值日志系統(tǒng)的空間回收方法,包括如下步驟:
(1)對(duì)值日志文件中的分片日志文件進(jìn)行統(tǒng)一的地址空間編碼;
(2)從0號(hào)文件頭開始解析日志記錄,如果該記錄可以回收,則直接跳過,繼續(xù)解析下一條記錄,否則將該記錄重新插入到值日志尾部;
(3)如果最早的值日志分片文件的記錄已經(jīng)全部完成回收,則刪除該分片文件,對(duì)于后續(xù)文件重復(fù)該過程,完成空間回收。
優(yōu)選的,步驟(1)中,統(tǒng)一的地址空間編碼具體為:0號(hào)文件分片空間地址是0到4G-1,1號(hào)分片空間地址4G到8G-1,以此類推。
優(yōu)選的,步驟(2)中,從0號(hào)文件頭開始解析日志記錄,如果該記錄可以回收,則直接跳過,繼續(xù)解析下一條記錄,否則將該記錄重新插入到值日志尾部具體包括如下步驟:
(21)值日志巡檢工作線程定期由用戶指定采樣截止地址,統(tǒng)計(jì)可以回收的空間情況,如果值日志文件從開始地址到截止地址之間可回收空間達(dá)到指定閾值,則記錄回收截止地址;
(22)值日志回收解析線程一次解析一小段空間,解析每個(gè)數(shù)據(jù)記錄,判定記錄是否可回收;
(23)如果解析遇到可回收的幾類數(shù)據(jù)會(huì)直接丟棄,同時(shí)會(huì)保留有效數(shù)據(jù)記錄的最新版本記錄,并緩存到待重新插入鏈表中;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于達(dá)夢(mèng)數(shù)據(jù)技術(shù)(江蘇)有限公司,未經(jīng)達(dá)夢(mèng)數(shù)據(jù)技術(shù)(江蘇)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210167721.6/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類





