[發(fā)明專(zhuān)利]一種內(nèi)存數(shù)據(jù)庫(kù)的日志合并方法和系統(tǒng)無(wú)效
| 申請(qǐng)?zhí)枺?/td> | 200910305932.6 | 申請(qǐng)日: | 2009-08-21 |
| 公開(kāi)(公告)號(hào): | CN101625703A | 公開(kāi)(公告)日: | 2010-01-13 |
| 發(fā)明(設(shè)計(jì))人: | 盧正新;王非;黃本雄;王芙蓉;吳惠君 | 申請(qǐng)(專(zhuān)利權(quán))人: | 華中科技大學(xué) |
| 主分類(lèi)號(hào): | G06F17/30 | 分類(lèi)號(hào): | G06F17/30;G06F11/34 |
| 代理公司: | 北京市德權(quán)律師事務(wù)所 | 代理人: | 周發(fā)軍 |
| 地址: | 430074湖北*** | 國(guó)省代碼: | 湖北;42 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 內(nèi)存 數(shù)據(jù)庫(kù) 日志 合并 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及內(nèi)存數(shù)據(jù)庫(kù)備份和恢復(fù)領(lǐng)域,尤其涉及內(nèi)存數(shù)據(jù)庫(kù)日志系統(tǒng)中的縮減日志量的技術(shù)領(lǐng)域。
背景技術(shù)
內(nèi)存數(shù)據(jù)庫(kù)因其快速的訪問(wèn)性能,被越來(lái)越廣泛的使用在電信、金融、電力等行業(yè)。在內(nèi)存數(shù)據(jù)庫(kù)復(fù)雜的應(yīng)用領(lǐng)域中,它承擔(dān)處理的數(shù)據(jù)越來(lái)越多,接收的事務(wù)越來(lái)越多,扮演的角色也越來(lái)越重要。正因?yàn)閮?nèi)存數(shù)據(jù)庫(kù)在現(xiàn)代應(yīng)用中越來(lái)越重要的應(yīng)用,它的數(shù)據(jù)安全性越來(lái)越被重視,作為記錄數(shù)據(jù)庫(kù)工作的日志也被重視起來(lái)。然而內(nèi)存數(shù)據(jù)庫(kù)承擔(dān)的事務(wù)越來(lái)越多,事務(wù)越來(lái)越復(fù)雜,記錄事務(wù)的日志也越來(lái)越多,日志數(shù)量變得十分的龐大。如此大量的日志不僅增加了數(shù)據(jù)庫(kù)的負(fù)擔(dān),而且也加長(zhǎng)了數(shù)據(jù)庫(kù)恢復(fù)的時(shí)間,是對(duì)內(nèi)存數(shù)據(jù)庫(kù)的應(yīng)用十分不利的。
現(xiàn)有的內(nèi)存數(shù)據(jù)庫(kù)記錄的日志一般是物理日志,對(duì)于數(shù)據(jù)庫(kù)記錄的日志一般按照直接的內(nèi)存映像存儲(chǔ),或者通過(guò)壓縮技術(shù)存儲(chǔ)。通過(guò)壓縮技術(shù)存儲(chǔ)日志需要在備份和恢復(fù)階段都要對(duì)日志進(jìn)行大量的運(yùn)算(在備份階段需要壓縮日志然后存儲(chǔ),在恢復(fù)階段需要解壓縮日志然后執(zhí)行恢復(fù)),雖然這種方法壓縮了日志的大小,減少了日志存儲(chǔ)的空間,但是這種方法增加了系統(tǒng)負(fù)擔(dān),耗費(fèi)了大量時(shí)間,不適用于對(duì)時(shí)間要求較高的內(nèi)存數(shù)據(jù)庫(kù)的應(yīng)用場(chǎng)合;另外,這種方法并沒(méi)有從日志數(shù)量上進(jìn)行縮減,在恢復(fù)階段仍然有恢復(fù)同樣數(shù)量的日志。減少日志量的另一方法是通過(guò)事務(wù)協(xié)議來(lái)減少記錄日志,這種方法對(duì)事務(wù)處理提出了要求,導(dǎo)致事務(wù)處理變得復(fù)雜,對(duì)于不同的事務(wù)協(xié)議沒(méi)有通用性,這種減少日志的方法只適用在采用能夠減少記錄日志的事務(wù)協(xié)議的數(shù)據(jù)庫(kù)中。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種有效縮減日志量的日志合并方法及系統(tǒng)。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種日志合并方法,包括以下步驟:a,對(duì)新進(jìn)入緩沖區(qū)的日志執(zhí)行事務(wù)邏輯相關(guān)性判別,包括以下步驟:
a1,對(duì)新進(jìn)入緩沖區(qū)的日志,根據(jù)日志類(lèi)型判別是否是其對(duì)應(yīng)事務(wù)的最后一個(gè)日志且是可合并日志,若是,執(zhí)行步驟a2,否則結(jié)束;
a2,根據(jù)日志頭中記錄的該日志在事務(wù)內(nèi)的邏輯順序信息,在日志緩存塊中查找上一個(gè)日志;
a3,判別是否找到日志,若沒(méi)找到則執(zhí)行步驟a4,否則轉(zhuǎn)至步驟a5;
a4,合并所查找到的一系列日志,合并然后插入到最后一個(gè)日志的位置上,并將原被已經(jīng)合并的日志刪除,然后結(jié)束;
a5,判別步驟a2獲取的上一個(gè)日志是否在最后一個(gè)不可合并的日志以前,若是則結(jié)束,否則轉(zhuǎn)至步驟a2;
b,判斷是否執(zhí)行邏輯合并,若是則執(zhí)行步驟c,否則轉(zhuǎn)至步驟d;
c,執(zhí)行基于事務(wù)邏輯的日志合并;
d,對(duì)新日志包含的數(shù)據(jù)對(duì)象執(zhí)行數(shù)據(jù)對(duì)象一致性判別,包括以下步驟:
d1,對(duì)新進(jìn)入緩沖區(qū)的日志判斷日志類(lèi)型,如果是不可合并日志,執(zhí)行步驟d2,否則轉(zhuǎn)至步驟d3;
d2,清空hash表,為后面的插入行操作日志做好準(zhǔn)備,并轉(zhuǎn)至步驟d8;
d3,取得本日志描述的數(shù)據(jù)對(duì)象的內(nèi)存地址rAddr;
d4,依據(jù)rAddr計(jì)算hash值,查找hash表;
d5,判斷是否有相同地址的日志,如果有,執(zhí)行步驟d6,否則轉(zhuǎn)至步驟d7;
d6,執(zhí)行日志合并,并轉(zhuǎn)至步驟d8;
d7,將本條日志插入hash表;
d8,向緩沖塊中插入本條日志;
e,判斷是否執(zhí)行日志數(shù)據(jù)對(duì)象一致合并,若是則執(zhí)行步驟f,否則執(zhí)行步驟g;
f,執(zhí)行基于數(shù)據(jù)對(duì)象的日志合并;
g,將新日志插入到緩存塊中。
按上述方案,所述日志緩存塊內(nèi)采用hash結(jié)構(gòu)組織。
另一方面,本發(fā)明提供一種對(duì)應(yīng)于上述方法的日志合并系統(tǒng),包括內(nèi)存中的日志緩存塊、日志管理文件和日志文件,所述日志緩存塊由緩存塊頭和多個(gè)緩存塊組成,用于緩存日志;所述日志管理文件用于記錄日志文件的相應(yīng)管理信息,由文件頭和信息區(qū)組成;所述日志文件用于存儲(chǔ)已經(jīng)經(jīng)過(guò)合并后的日志。
按上述方案,所述日志合并系統(tǒng)還包括寫(xiě)磁盤(pán)日志線程。
按上述方案,所述文件頭用于記錄相關(guān)管理信息。
按上述方案,所述信息區(qū)用于記錄對(duì)應(yīng)數(shù)據(jù)庫(kù)映像文件、檢查點(diǎn)和日志文件鏈表信息。
實(shí)施本發(fā)明具有如下有益效果:
在本發(fā)明所提出的一種內(nèi)存數(shù)據(jù)庫(kù)的日志合并方法及系統(tǒng)中,通過(guò)對(duì)每條日志進(jìn)行hash查找匹配可合并的日志然后合并這些日志,不僅減少了內(nèi)存數(shù)據(jù)庫(kù)的日志數(shù)量,而且加快了數(shù)據(jù)庫(kù)的恢復(fù)速度,解決了內(nèi)存數(shù)據(jù)庫(kù)的日志數(shù)量大的技術(shù)問(wèn)題,同時(shí)降低了部署成本,提高了系統(tǒng)性能。
附圖說(shuō)明
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于華中科技大學(xué),未經(jīng)華中科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910305932.6/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語(yǔ)言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置
- 一種基于精簡(jiǎn)策略的集群系統(tǒng)的日志管理優(yōu)化方法
- 日志分離方法及裝置
- 日志服務(wù)器處理日志的方法和裝置
- 一種基于負(fù)載均衡的文件系統(tǒng)日志模型
- 日志生成方法、應(yīng)用服務(wù)器、日志服務(wù)器及日志生成系統(tǒng)
- 一種多線程日志輸出的方法及裝置
- 一種日志分析方法、系統(tǒng)、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 日志解析方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 日志處理方法及設(shè)備
- 一種日志檢測(cè)方法、裝置、終端及服務(wù)器





