• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MHBT的數(shù)據(jù)庫(kù)隔離與恢復(fù)模型

      2013-10-17 06:09:08
      關(guān)鍵詞:元組服務(wù)端哈希

      趙 飛 蘇 忠 丁 小

      (1.空軍指揮學(xué)院 網(wǎng)絡(luò)中心 北京 100097 2.95865部隊(duì) 北京 100092)

      0 引言

      數(shù)據(jù)庫(kù)安全一直以來(lái)都是信息安全領(lǐng)域的熱點(diǎn)問(wèn)題。隨著云計(jì)算、物聯(lián)網(wǎng)等新興技術(shù)的迅速發(fā)展,以及社交網(wǎng)絡(luò)、微博、推特等新型網(wǎng)絡(luò)應(yīng)用的快速普及,包括銀行、鐵路、水電等基礎(chǔ)設(shè)施要害領(lǐng)域的信息系統(tǒng)的安全受到更加廣泛關(guān)注,而信息系統(tǒng)是否安全在很大程度上取決于數(shù)據(jù)庫(kù)的安全。傳統(tǒng)的數(shù)據(jù)庫(kù)安全機(jī)制側(cè)重于保護(hù)數(shù)據(jù)的保密性、完整性和可用性,但無(wú)法滿足數(shù)據(jù)庫(kù)可生存性要求,即數(shù)據(jù)庫(kù)在遭受到非人為系統(tǒng)故障、內(nèi)部或外部攻擊時(shí)持續(xù)提供關(guān)鍵服務(wù)的能力。要實(shí)現(xiàn)數(shù)據(jù)庫(kù)可生存性,很關(guān)鍵的一點(diǎn)是必須能夠快速發(fā)現(xiàn)并隔離惡意事務(wù)和受污染數(shù)據(jù),并且及時(shí)恢復(fù)相關(guān)事務(wù)和數(shù)據(jù)。隨著數(shù)據(jù)庫(kù)數(shù)據(jù)規(guī)模的急劇增大,事務(wù)提交異常頻繁,如何能夠在惡意事務(wù)檢測(cè)以后,在確保隔離精度的前提下,最大限度的減少隔離和恢復(fù)的時(shí)間就成為一個(gè)重要的研究方向,因?yàn)樗苯雨P(guān)系著數(shù)據(jù)庫(kù)持續(xù)提供服務(wù)的能力。

      1 相關(guān)研究

      Merkle Hash Tree(MHT)最早被引入到驗(yàn)證服務(wù)數(shù)據(jù)的真實(shí)性是在文獻(xiàn)[1]中,它解決了指定查詢服務(wù)結(jié)果可靠性的認(rèn)證問(wèn)題。Martel 等人在解決在線數(shù)據(jù)庫(kù)查詢安全認(rèn)證問(wèn)題時(shí)提出了檢索有向非循環(huán)圖(search directed acyclic graph)的驗(yàn)證方法[2],并引入了MHT結(jié)構(gòu),提升了檢查的效率。Devanbu 等人提出一種基于MHT的驗(yàn)證機(jī)制來(lái)解決第三方數(shù)據(jù)發(fā)布方的數(shù)據(jù)完整性和可靠性驗(yàn)證問(wèn)題[3],在機(jī)制中要求數(shù)據(jù)庫(kù)所有者為每一個(gè)數(shù)據(jù)表建立MHT,并將MHT根處的信息摘要直接發(fā)給用戶,以此來(lái)實(shí)現(xiàn)查詢結(jié)果的驗(yàn)證。Ma 等人在文獻(xiàn)[3]基礎(chǔ)上作了修改[4],對(duì)單獨(dú)元組的屬性值建立MHT,從而在驗(yàn)證時(shí)能夠精確到數(shù)據(jù)元組,提升了驗(yàn)證精度和效率。Pang H 等人從查詢結(jié)果的完整性和可靠性兩個(gè)方面對(duì)文獻(xiàn)[3]中提出的方法作了實(shí)驗(yàn)性驗(yàn)證[5],內(nèi)容涵蓋了查詢、查詢投影、多點(diǎn)查詢等數(shù)據(jù)庫(kù)常用服務(wù)功能,并從通信代價(jià)、數(shù)據(jù)庫(kù)升級(jí)代價(jià)等角度對(duì)模型進(jìn)行了量化分析,具有很強(qiáng)的現(xiàn)實(shí)意義。

      以上基于MHT的方法都是建立在第三方(外包)數(shù)據(jù)庫(kù)服務(wù)方靜態(tài)環(huán)境條件下(許多是基于理想化模型條件),解決的問(wèn)題為數(shù)據(jù)庫(kù)查詢的正確性和完整性要求。Li 等人在文獻(xiàn)[2]的基礎(chǔ)上,提出了查詢事務(wù)及時(shí)性的驗(yàn)證需求[6],并通過(guò)引入B+-tree設(shè)計(jì)驗(yàn)證索引結(jié)構(gòu)Merkle B-tree,建立驗(yàn)證模型,同時(shí)還將設(shè)計(jì)方法拓展到動(dòng)態(tài)數(shù)據(jù)庫(kù)服務(wù)中,提出Embedded Merkle B-tree的數(shù)據(jù)結(jié)構(gòu),合理的緩解了驗(yàn)證結(jié)構(gòu)存儲(chǔ)空間消耗問(wèn)題。Jain 等人在文獻(xiàn)[6]基礎(chǔ)上提出了事務(wù)完整性的概念[7],設(shè)計(jì)的基于Merkle Hash B+-Tree(MHBT)模型不僅能夠?qū)崿F(xiàn)驗(yàn)證數(shù)據(jù)正確性和完整性的要求,還能夠通過(guò)建立事務(wù)執(zhí)行與數(shù)據(jù)庫(kù)狀態(tài)結(jié)構(gòu)MHBT之間的對(duì)應(yīng)關(guān)系,驗(yàn)證事務(wù)執(zhí)行的完整性,并實(shí)現(xiàn)攻擊數(shù)據(jù)恢復(fù)操作。

      2 基本概念介紹

      2.1 單列哈希算法

      單向哈希函數(shù)h()可以把一個(gè)變長(zhǎng)的輸入值x通過(guò)函數(shù)計(jì)算輸出為一個(gè)定長(zhǎng)值y,即:y=h(x),單向哈希函數(shù)h()具有單向性、唯一性等特點(diǎn)。單向性是指:給定一個(gè)哈希值y和函數(shù)h(),不可能找到一個(gè)值x,使得h(x)=y;唯一性是指:不可能找到兩個(gè)不同的值x、y,使得h(x)=h(y)。目前常用的單向哈希函數(shù)是SHA-256。

      2.2 Merkle哈希樹(shù)

      Merkle哈希樹(shù),又被稱為哈希樹(shù)或Merkle樹(shù),1979年由Ralph Merkle首先提出,主要用于對(duì)特定對(duì)象的認(rèn)證。MHT是一棵完全二叉樹(shù),在這棵樹(shù)中,葉節(jié)點(diǎn)為需認(rèn)證的對(duì)象的哈希值,而中間節(jié)點(diǎn)則是其左右孩子節(jié)點(diǎn)的并置哈希值。圖1所示的是一棵Merkle哈希樹(shù)示意圖。

      在圖1里,Merkle哈希樹(shù)共有四個(gè)葉節(jié)點(diǎn){S1,S2,S3,S4},其值分別為需認(rèn)證的對(duì)象{O1,O2,O3,O4}的哈希值,即Si=H(Oi)(i=1,2,3,4)(H()為單向哈希函數(shù));非葉節(jié)點(diǎn)S34可表示為S34=H(S3||S4)?!皘|”表示并置操作。

      圖1 Merkle哈希樹(shù)

      2.3 B+-tree

      B+樹(shù)是平衡多叉樹(shù)。一棵m階B+樹(shù)的定義如下[8]:

      樹(shù)中每個(gè)非葉節(jié)點(diǎn)最多有m棵子樹(shù);

      根節(jié)點(diǎn)(非葉節(jié)點(diǎn)) 至少有2棵子樹(shù)。除根節(jié)點(diǎn)外,其它的非葉節(jié)點(diǎn)至少有棵子樹(shù);

      若根節(jié)點(diǎn)同時(shí)又是葉節(jié)點(diǎn),則節(jié)點(diǎn)格式同葉節(jié)點(diǎn)。

      有n 棵子樹(shù)的節(jié)點(diǎn)有n個(gè)關(guān)鍵碼,對(duì)應(yīng)的指向?qū)ο蟮牡刂分羔樢灿衝個(gè);

      所有非葉節(jié)點(diǎn)中包含下列信息數(shù)據(jù)( n,K1,P1,K2,P2,… ,Kn,Pn),其中: Ki(i=1,…,n)為關(guān)鍵碼,且Ki<Ki+1,Pi(i=0,…,n)為指向子樹(shù)根節(jié)點(diǎn)的指針,n為關(guān)鍵碼的個(gè)數(shù);

      所有的非葉子節(jié)點(diǎn)可以看成是索引部分,節(jié)點(diǎn)中僅含有其子樹(shù)(根節(jié)點(diǎn))中的最小(或最大)關(guān)鍵碼;

      每個(gè)葉節(jié)點(diǎn)中的子樹(shù)棵數(shù)可以多于m,可以少于m,視關(guān)鍵碼字節(jié)數(shù)及對(duì)象地址指針字節(jié)數(shù)而定。

      所有葉節(jié)點(diǎn)都處于同一層次上,包含了全部關(guān)鍵碼及指向相應(yīng)數(shù)據(jù)對(duì)象存放地址的指針,且葉節(jié)點(diǎn)本身按關(guān)鍵碼從小到大順序鏈接;

      在B+樹(shù)中有兩個(gè)頭指針:一個(gè)指向B+樹(shù)的根節(jié)點(diǎn),一個(gè)指向關(guān)鍵碼最小(或最大)的葉節(jié)點(diǎn)。圖2是一棵3階的B+樹(shù)示意圖[8]。

      圖2 B+樹(shù)

      2.4 Merkle哈希B+樹(shù)

      Merkle哈希B+樹(shù)(Merkle Hash B+-Tree ,MHBT)就是將MHT中的樹(shù)結(jié)構(gòu)拓展成為B+樹(shù),如同構(gòu)建MHT一樣,對(duì)B+樹(shù)采用分層哈希的模式。一個(gè)MHBT的數(shù)據(jù)結(jié)構(gòu)有著與常規(guī)B+樹(shù)相同的節(jié)點(diǎn)構(gòu)成,所不同的是在每個(gè)節(jié)點(diǎn)處擴(kuò)充的加入了節(jié)點(diǎn)標(biāo)記值,每個(gè)節(jié)點(diǎn)的標(biāo)記值是孩子節(jié)點(diǎn)哈希值的并置哈希值,其計(jì)算方法如同MHT:非葉子節(jié)點(diǎn)的標(biāo)記值通過(guò)計(jì)算子節(jié)點(diǎn)標(biāo)記值的并置哈希值求得;葉子節(jié)點(diǎn)的標(biāo)記值通過(guò)計(jì)算該節(jié)點(diǎn)所包含數(shù)據(jù)元組哈希值獲得。如圖3(a)所示,數(shù)據(jù)庫(kù)初始化時(shí),對(duì)所有的數(shù)據(jù)元組進(jìn)行哈希運(yùn)算后,依據(jù)B+樹(shù)的構(gòu)建方法,逐級(jí)構(gòu)建此時(shí)的證據(jù)結(jié)構(gòu)MHBT。具體詳細(xì)的節(jié)點(diǎn)示意圖如圖3(b)所示,其中kj為節(jié)點(diǎn)的關(guān)鍵碼值,pj為指針,hj為節(jié)點(diǎn)的標(biāo)記值(其中hi…h(huán)k為該節(jié)點(diǎn)下屬孩子節(jié)點(diǎn)標(biāo)記值的并置哈希值),節(jié)點(diǎn)i為非葉子節(jié)點(diǎn),hi為該節(jié)點(diǎn)標(biāo)記值,即節(jié)點(diǎn)所指向數(shù)據(jù)元組哈希值的并置哈希值。

      圖3 Merkle哈希B+樹(shù)

      3 基于MHBT的隔離與恢復(fù)模型

      3.1 假設(shè)條件

      模型自身并不檢測(cè)惡意事務(wù)。本文設(shè)計(jì)模型本身并不檢測(cè)一個(gè)事務(wù)是否為惡意,惡意事務(wù)的檢測(cè)由入侵檢測(cè)系統(tǒng)完成,模型的主要功能是在惡意事務(wù)信息的基礎(chǔ)上,快速準(zhǔn)確的隔離污染事務(wù)及相應(yīng)的受損數(shù)據(jù)。

      數(shù)據(jù)庫(kù)事務(wù)的提交是嚴(yán)格串行化的。為了能夠確保數(shù)據(jù)有最嚴(yán)格意義的準(zhǔn)確性和完整性,這里我們假設(shè)數(shù)據(jù)庫(kù)事務(wù)的提交是嚴(yán)格串行化的,事務(wù)執(zhí)行的完整性要求每一個(gè)事務(wù)在提交時(shí)數(shù)據(jù)庫(kù)必須處于一致的狀態(tài),即之前所有的合法的提交事務(wù)都已全部有序的提交并修改完相應(yīng)的數(shù)據(jù)元組,從而確保數(shù)據(jù)庫(kù)狀態(tài)變化的與事務(wù)提交之間的強(qiáng)相關(guān)性。

      事務(wù)本身限定其具有可復(fù)制性。事務(wù)的可復(fù)制性是指事務(wù)具有確定性,即在數(shù)據(jù)庫(kù)穩(wěn)定狀態(tài)上,事務(wù)的執(zhí)行結(jié)果完全由讀取的數(shù)據(jù)庫(kù)值和外部輸入的參數(shù)值決定,撤銷(xiāo)重做執(zhí)行結(jié)果相同。

      3.2 系統(tǒng)模型

      模型中采用“三方”機(jī)制運(yùn)行,分別是數(shù)據(jù)庫(kù)服務(wù)端、數(shù)據(jù)庫(kù)客戶端和MHBT存儲(chǔ)端。其中,數(shù)據(jù)庫(kù)服務(wù)端與客戶端采用“一對(duì)多”模式,即一個(gè)數(shù)據(jù)庫(kù)服務(wù)端對(duì)應(yīng)有多個(gè)數(shù)據(jù)庫(kù)客戶端,MHBT存儲(chǔ)端為一個(gè)。系統(tǒng)模型如圖4所示。

      圖4 系統(tǒng)模型

      3.3 模型描述

      在以上假設(shè)條件基礎(chǔ)上,就可以設(shè)計(jì)模型使用MHBT來(lái)建立事務(wù)與數(shù)據(jù)庫(kù)狀態(tài)之間的關(guān)系模型:數(shù)據(jù)庫(kù)每一次狀態(tài)變化都可以通過(guò)更新MHBT的證據(jù)結(jié)構(gòu)來(lái)記錄,而MHBT的更新又是建立在事務(wù)提交的基礎(chǔ)上,新的樹(shù)形結(jié)構(gòu)是在之前樹(shù)結(jié)構(gòu)應(yīng)用事務(wù)執(zhí)行結(jié)果后計(jì)算而來(lái)的,這樣就能夠通過(guò)MHBT建立數(shù)據(jù)庫(kù)狀態(tài)和事務(wù)提交之間的一一對(duì)應(yīng)關(guān)系。

      3.3.1 初始化

      在數(shù)據(jù)庫(kù)開(kāi)始向用戶提供服務(wù)前,首先構(gòu)造數(shù)據(jù)庫(kù)初始狀態(tài)時(shí)的MHBT0。MHBT存儲(chǔ)端復(fù)制初始狀態(tài)時(shí)數(shù)據(jù)庫(kù)服務(wù)端的所有數(shù)據(jù)元組,根據(jù)2.4節(jié)中MHBT構(gòu)建方法,對(duì)此時(shí)數(shù)據(jù)庫(kù)所擁有的所有數(shù)據(jù)表,建立初始狀態(tài)時(shí)各自的證據(jù)結(jié)構(gòu)MHBT0,證據(jù)結(jié)構(gòu)中所有節(jié)點(diǎn)的信息通過(guò)MHBT存儲(chǔ)端建立存儲(chǔ)表的形式存儲(chǔ)。此后數(shù)據(jù)庫(kù)服務(wù)端開(kāi)始正常工作,接收用戶發(fā)來(lái)的請(qǐng)求事務(wù)。圖5為一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)表1在初始化時(shí)的示例,為了便于演示,我們將每條數(shù)據(jù)記錄(數(shù)據(jù)元組)以t1,t2,t3…代號(hào)的形式表示,Hi為該條數(shù)據(jù)元組的哈希值。

      表1 數(shù)據(jù)庫(kù)初始化時(shí)數(shù)

      07 張七 男 19 計(jì)算機(jī)…… …… …… …… ……18 張18 男 19 計(jì)算機(jī)…… …… …… …… ……26 張26 男 19 計(jì)算機(jī)27 張27 男 19 計(jì)算機(jī)

      圖5 模型初始化MHBT0示例

      3.3.2 事務(wù)執(zhí)行

      數(shù)據(jù)庫(kù)在執(zhí)行事務(wù)時(shí)先記錄被修改數(shù)據(jù)元組的信息,如果事務(wù)提交成功,數(shù)據(jù)庫(kù)就將更新的數(shù)據(jù)元組和事務(wù)標(biāo)識(shí)號(hào)(事務(wù)在數(shù)據(jù)庫(kù)服務(wù)端的標(biāo)識(shí)信息)發(fā)送到MHBT存儲(chǔ)端,而后再將事務(wù)執(zhí)行結(jié)果集返回給客戶端。MHBT存儲(chǔ)端根據(jù)事務(wù)標(biāo)識(shí)號(hào)和修改的數(shù)據(jù)元組更新證據(jù)機(jī)構(gòu)MHBT。具體如圖6所示,事務(wù)的提交是串行化的,如果i是做為本次提交事務(wù)的標(biāo)識(shí)號(hào),數(shù)據(jù)庫(kù)就將識(shí)別其為事務(wù)Ti,即第i個(gè)提交的事務(wù),串行化隔離級(jí)別能夠確保事務(wù)Ti的執(zhí)行是在DBi-1的狀態(tài)上(之前所有事務(wù)全部響應(yīng)后的一致?tīng)顟B(tài)),事務(wù)執(zhí)行后數(shù)據(jù)庫(kù)進(jìn)入下一個(gè)一致?tīng)顟B(tài)DBi,數(shù)據(jù)庫(kù)服務(wù)端將修改的數(shù)據(jù)元組與相應(yīng)的事務(wù)位置號(hào)Ti一并發(fā)送給MHBT存儲(chǔ)端,而后數(shù)據(jù)庫(kù)服務(wù)端向用戶發(fā)送響應(yīng)信息:事務(wù)序列號(hào)(客戶端查證事務(wù))、事務(wù)執(zhí)行結(jié)果集。MHBT存儲(chǔ)端根據(jù)收到的事務(wù)標(biāo)識(shí)號(hào)和所修改的數(shù)據(jù)元組計(jì)算相應(yīng)的證據(jù)結(jié)構(gòu)MHBTi(從之前的MHBTi-1基礎(chǔ)上計(jì)算當(dāng)前的MHBTi:未修改元組直接讀取MHBTi-1中記錄的節(jié)點(diǎn)值,有改動(dòng)數(shù)據(jù)元組計(jì)算哈希值并存入相應(yīng)節(jié)點(diǎn)后與未修改數(shù)據(jù)元組節(jié)點(diǎn)一起生成新的證據(jù)機(jī)構(gòu)MHBTi),做為當(dāng)前事務(wù)執(zhí)行后的數(shù)據(jù)庫(kù)狀態(tài)信息。

      圖6 事務(wù)執(zhí)行過(guò)程

      3.3.3 事務(wù)與數(shù)據(jù)隔離

      當(dāng)入侵檢測(cè)系統(tǒng)檢測(cè)到惡意事務(wù)后,數(shù)據(jù)庫(kù)會(huì)根據(jù)事務(wù)標(biāo)識(shí)號(hào)i調(diào)取惡意事務(wù)的證據(jù)結(jié)構(gòu)MHBTi,因?yàn)閿?shù)據(jù)庫(kù)是嚴(yán)格串行化隔離的,所以受影響的事務(wù)必定是在事務(wù)i提交之后的事務(wù),MHBT通過(guò)比對(duì)事務(wù)i之后的所有證據(jù)結(jié)構(gòu)能夠快速的確定受影響事務(wù)。

      證據(jù)結(jié)構(gòu)具體比對(duì)方法是:

      (1)比較根節(jié)點(diǎn)的值。在證據(jù)結(jié)構(gòu)歷史表中存儲(chǔ)有數(shù)據(jù)庫(kù)歷次更新后,各節(jié)點(diǎn)的變更信息,依據(jù)事務(wù)號(hào)及節(jié)點(diǎn)層級(jí)號(hào)能夠快速實(shí)施對(duì)根節(jié)點(diǎn)的比對(duì):如果根節(jié)點(diǎn)值一樣,則根據(jù)MHBT樹(shù)結(jié)構(gòu)的特點(diǎn),可以判定該事務(wù)沒(méi)有修改任何數(shù)據(jù)元組,為只讀事務(wù),不記錄到寫(xiě)事務(wù)表中;如果根節(jié)點(diǎn)值不一樣,則能確定該事務(wù)對(duì)數(shù)據(jù)元組執(zhí)行了修改操作,為寫(xiě)事務(wù),記錄到寫(xiě)事務(wù)列表中,同時(shí),依據(jù)證據(jù)結(jié)構(gòu)歷史表中存儲(chǔ)的信息,比對(duì)出所有變化的葉結(jié)點(diǎn)信息,以此來(lái)鎖定所有被修改的數(shù)據(jù)元組。如圖7中所示,T(1),T(2),T(3),T(11)都執(zhí)行了寫(xiě)操作,在首次判定時(shí)都會(huì)被記錄到寫(xiě)事務(wù)列表中,而T(12)僅讀取了數(shù)據(jù),沒(méi)有修改數(shù)據(jù),這里就不做記錄。

      (2)依次比對(duì)寫(xiě)事務(wù)列表。依據(jù)寫(xiě)事務(wù)列表所對(duì)應(yīng)的MHBT樹(shù)結(jié)構(gòu),比對(duì)出后一事務(wù)在之前事務(wù)基礎(chǔ)上做的數(shù)據(jù)修改,記錄相應(yīng)改變的數(shù)據(jù)元組。如果改變數(shù)據(jù)元組中包含有受損數(shù)據(jù)元組或污染數(shù)據(jù)元組,則定義該事務(wù)為強(qiáng)相關(guān)事務(wù),記錄到待恢復(fù)事務(wù)列表中,所有修改元組記錄為污染數(shù)據(jù);如果不包含受損數(shù)據(jù)元組或污染數(shù)據(jù)元組,則記錄為嫌疑事務(wù),進(jìn)入到下層比對(duì)模型。如7圖中所示,事務(wù)T(1),T(2)對(duì)應(yīng)的證據(jù)結(jié)構(gòu)中,比對(duì)出的修改元組包含有受損數(shù)據(jù)X,因?yàn)槭聞?wù)T(1) ,T(2)對(duì)X執(zhí)行了寫(xiě)操作,會(huì)被判定為強(qiáng)相關(guān)事務(wù),記錄到待恢復(fù)列表中,數(shù)據(jù)Y記錄為污染數(shù)據(jù);事務(wù)T(3),T(11)與其之前證據(jù)結(jié)構(gòu)比對(duì)出的修改數(shù)據(jù)元組不包含有受損數(shù)據(jù)X及污染數(shù)據(jù)Y,判定為嫌疑事務(wù),進(jìn)入到下層比對(duì)模型中。

      (3)嫌疑事務(wù)判定。對(duì)2記錄的嫌疑事務(wù),MHBT存儲(chǔ)端會(huì)通過(guò)其事務(wù)標(biāo)識(shí)號(hào)讀取數(shù)據(jù)庫(kù)服務(wù)端事務(wù)日志記錄中的事務(wù)操作信息,如果該事務(wù)有讀取受損數(shù)據(jù)或污染數(shù)據(jù)的操作,則判定為污染事務(wù),記錄到待恢復(fù)事務(wù)列表中;如果該事務(wù)沒(méi)有讀取受損數(shù)據(jù)的操作,則可以判定為正常事務(wù),釋放相關(guān)的加鎖數(shù)據(jù)元組。如圖7中所示,事務(wù)T(3)有執(zhí)行讀取數(shù)據(jù)X的操作,被判定為污染事務(wù),記錄到待恢復(fù)事務(wù)列表中;事務(wù)T(11)沒(méi)有執(zhí)行數(shù)據(jù)X的讀操作,雖然有修改數(shù)據(jù)庫(kù)中數(shù)據(jù),但仍就判定為正常事務(wù),釋放對(duì)數(shù)據(jù)U的鎖定操作。

      圖8為具體事務(wù)的比對(duì)流程。

      圖7 數(shù)據(jù)庫(kù)事務(wù)分類圖

      圖8 事務(wù)比對(duì)流程

      可生存性保證:MHBT存儲(chǔ)端將事務(wù)隔離確定的受損數(shù)據(jù)和污染數(shù)據(jù)以事務(wù)請(qǐng)求方式在數(shù)據(jù)庫(kù)服務(wù)端加鎖(利用數(shù)據(jù)庫(kù)中的排他鎖,對(duì)相關(guān)數(shù)據(jù)實(shí)施加鎖操作),新事務(wù)請(qǐng)求中如果有訪問(wèn)到這兩種數(shù)據(jù)則推遲執(zhí)行,等待訪問(wèn)數(shù)據(jù)的恢復(fù)操作;如果沒(méi)有則正常提交事務(wù),按要求生成新的數(shù)據(jù)庫(kù)證據(jù)結(jié)構(gòu)記錄到MHBT存儲(chǔ)端相關(guān)的數(shù)據(jù)表中。這樣就將正確數(shù)據(jù)與錯(cuò)誤數(shù)據(jù)合理分割,區(qū)別對(duì)待,在確保數(shù)據(jù)庫(kù)持續(xù)提供服務(wù)的同時(shí)執(zhí)行受損數(shù)據(jù)的逐個(gè)恢復(fù),最大限度的保證用戶的服務(wù)請(qǐng)求,如圖9所示。

      圖9 數(shù)據(jù)庫(kù)服務(wù)端事務(wù)執(zhí)行流程圖

      3.3.4 數(shù)據(jù)修復(fù)

      在數(shù)據(jù)庫(kù)服務(wù)端的歷次更新中,模型運(yùn)行機(jī)的歷史表中記錄了所有變化的元組值,當(dāng)需要修復(fù)時(shí),MHBT存儲(chǔ)端能夠通過(guò)事務(wù)號(hào)查到在執(zhí)行本次事務(wù)時(shí),數(shù)據(jù)庫(kù)修改元組和節(jié)點(diǎn)值時(shí)所參照的上一數(shù)據(jù)庫(kù)服務(wù)端的狀態(tài)結(jié)構(gòu)信息(參照的相關(guān)元組值);待修列表中事務(wù)按提交號(hào)順序排列,通過(guò)讀取事務(wù)日志信息,執(zhí)行事務(wù)的重做操作,恢復(fù)數(shù)據(jù)服務(wù)端到正確狀態(tài)。

      在數(shù)據(jù)庫(kù)服務(wù)端的歷次更新中,MHBT存儲(chǔ)端的數(shù)據(jù)元組歷史表中記錄了歷次修改的數(shù)據(jù)元組值,當(dāng)需要修復(fù)時(shí),MHBT存儲(chǔ)端能夠通過(guò)事務(wù)號(hào)查詢到在執(zhí)行本次事務(wù)時(shí),數(shù)據(jù)庫(kù)修改數(shù)據(jù)元組和節(jié)點(diǎn)值時(shí)所參照的上一數(shù)據(jù)庫(kù)服務(wù)端的狀態(tài)結(jié)構(gòu)信息;待修列表中事務(wù)按標(biāo)識(shí)號(hào)順序排列,通過(guò)讀取事務(wù)日志信息,執(zhí)行事務(wù)的重做操作,恢復(fù)數(shù)據(jù)服務(wù)端到正確狀態(tài)。具體恢復(fù)恢復(fù)方法是:

      (1)將隔離模型中所確定待修復(fù)事務(wù)按標(biāo)識(shí)號(hào)順序排列,標(biāo)識(shí)號(hào)在數(shù)據(jù)庫(kù)服務(wù)端是按事務(wù)提交順序依次遞增排列的,順序排列修復(fù)事務(wù),能夠有效提高讀取數(shù)據(jù)庫(kù)服務(wù)端事務(wù)日志記錄的效率。

      (2)讀取數(shù)據(jù)庫(kù)服務(wù)端事務(wù)日志,索取事務(wù)具體的操作序列。

      (3)依據(jù)事務(wù)操作信息,讀取MHBT存儲(chǔ)端證據(jù)結(jié)構(gòu)MHBT中存儲(chǔ)的相關(guān)信息,執(zhí)行事務(wù),修改相應(yīng)的記錄值,形成新的證據(jù)結(jié)構(gòu)。

      (4)返回結(jié)果給數(shù)據(jù)庫(kù)服務(wù)端,修改對(duì)應(yīng)的數(shù)據(jù)元組,解除加鎖操作。

      圖10為具體事務(wù)恢復(fù)流程圖。

      圖10 事務(wù)修復(fù)過(guò)程

      4 模型分析

      4.1 狀態(tài)結(jié)構(gòu)構(gòu)建時(shí)間

      構(gòu)建數(shù)據(jù)庫(kù)某個(gè)狀態(tài)時(shí)的MHBT樹(shù)結(jié)構(gòu)所耗費(fèi)的時(shí)間包括計(jì)算每個(gè)數(shù)據(jù)元組的哈希值以及樹(shù)中每個(gè)節(jié)點(diǎn)哈希值,另外還有將這些節(jié)點(diǎn)信息寫(xiě)入磁盤(pán)的時(shí)間。

      一個(gè)數(shù)據(jù)庫(kù)擁有n個(gè)元組,扇出(fanout,非葉結(jié)點(diǎn)平均擁有的孩子節(jié)點(diǎn)數(shù))為,如果構(gòu)建MHBT樹(shù)的高度為d,那么樹(shù)中構(gòu)建的節(jié)點(diǎn)為:

      則構(gòu)建樹(shù)的時(shí)間為:

      其中,Sn樹(shù)節(jié)點(diǎn)占用存儲(chǔ)塊大小,St數(shù)據(jù)元組占有存儲(chǔ)塊大小,Ch為計(jì)算一個(gè)哈希值所需要的時(shí)間,CIO為一個(gè)數(shù)據(jù)塊的IO時(shí)間消耗。構(gòu)建證據(jù)樹(shù)MHBT的時(shí)間復(fù)雜度為,正比于數(shù)據(jù)庫(kù)的存儲(chǔ)容量。

      4.2 狀態(tài)結(jié)構(gòu)存儲(chǔ)空間分析

      所提出的模型模型需要存儲(chǔ)數(shù)據(jù)更新歷史中的所有元組和節(jié)點(diǎn)的值及更新后的元組和節(jié)點(diǎn)值,所以這里所需的存儲(chǔ)空間相當(dāng)于MHBT樹(shù)的兩倍,所以在k次更新后,模型所需要的存儲(chǔ)空間為:

      模型的空間復(fù)雜度為O(n+klog(n)),正比于數(shù)據(jù)庫(kù)容量和數(shù)據(jù)更新次數(shù)。

      4.3 數(shù)據(jù)庫(kù)更新延遲分析

      在MHBT樹(shù)中插入或刪除一個(gè)元組,相應(yīng)的從葉子節(jié)點(diǎn)到根節(jié)點(diǎn)的路徑信息都需要更新,并且更新后的結(jié)果值還要寫(xiě)入到歷史記錄表中,所以更新數(shù)據(jù)所需的時(shí)間為:

      其時(shí)間復(fù)雜度為O(logn)

      4.4 模型運(yùn)行效率分析

      隔離模型的模型核心是對(duì)MHBT樹(shù)的比對(duì),而MHBT樹(shù)又以元組的形式記錄在數(shù)據(jù)庫(kù)表中,故模型相當(dāng)于是在數(shù)據(jù)庫(kù)表中查詢和比對(duì)相應(yīng)元組值是否相等,查詢時(shí)間復(fù)雜度為:

      5 結(jié)束語(yǔ)

      傳統(tǒng)基于檢查點(diǎn)的數(shù)據(jù)庫(kù)恢復(fù)技術(shù),不論是物理恢復(fù)還是邏輯恢復(fù),都需要停止數(shù)據(jù)庫(kù)服務(wù),而且要花費(fèi)相當(dāng)長(zhǎng)的時(shí)間(將檢查點(diǎn)之后的所有數(shù)據(jù)重新操作一遍)來(lái)恢復(fù),本文提出的模型機(jī)制能夠在確定惡意事務(wù)的前提下,通過(guò)比對(duì)MHBT中數(shù)據(jù)元組值的變化情況,并結(jié)合日志記錄中事務(wù)的操作信息,實(shí)現(xiàn)對(duì)污染數(shù)據(jù)的精確隔離;同時(shí),通過(guò)數(shù)據(jù)與事務(wù)之間的依賴關(guān)系,從日志記錄中篩選出污染事務(wù),實(shí)施精確修復(fù),減少了數(shù)據(jù)修復(fù)時(shí)間,提升數(shù)據(jù)庫(kù)恢復(fù)的效率,最大限度的保證了數(shù)據(jù)庫(kù)的可生存性。模型機(jī)制的優(yōu)點(diǎn)是與數(shù)據(jù)庫(kù)日志系統(tǒng)相結(jié)合,但又不完全依賴于日志系統(tǒng)。在不停止數(shù)據(jù)庫(kù)服務(wù)的前提下,充分發(fā)揮MHBT樹(shù)的數(shù)據(jù)結(jié)構(gòu)特點(diǎn),提升數(shù)據(jù)庫(kù)隔離的精度和速度,提高數(shù)據(jù)恢復(fù)的效率。文章最后通過(guò)數(shù)學(xué)分析評(píng)估了模型的性能,在下一步的工作中,將針對(duì)論文中提出的分析評(píng)價(jià)參數(shù),展開(kāi)算法模型的設(shè)計(jì)與實(shí)驗(yàn)性驗(yàn)證,以在實(shí)際應(yīng)用中分析模型的可行性和高效性。

      [1]Merkle R C.A certified digital signature[C]//Advances in Cryptology—CRYPTO’89 Proceedings.Springer New York,1990: 218-238.

      [2]Martel C,Nuckolls G,Devanbu P,et al.A general model for authenticated data structures[J].Algorithmica,2004,39(1): 21-41.

      [3]Devanbu P,Gertz M,Martel C,et al.Authentic data publication over the internet[J].Journal of Computer Security,2003,11(3):291-314.

      [4]Ma D,Deng R,and Pang H.Authenticating Query Results From Untrusted Servers Over Open Networks.In Submitted for Publication,2004.

      [5]Pang H H,Jain A,Ramamritham K,et al.Verifying completeness of relational query results in data publishing[C]//Proceedings of the 2005 ACM SIGMOD international conference on Management of data.ACM,2005: 407-418.

      [6]Li F,Hadjieleftheriou M,Kollios G,et al.Dynamic authenticated index structures for outsourced databases[C]//Proceedings of the 2006 ACM SIGMOD international conference on Management of data.ACM,2006: 121-132.

      [7]Jain R,Prabhakar S.Trustworthy Data from Untrusted Databases[C].ICDE,2013.

      [8]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].清華大學(xué)出版社,2011.

      猜你喜歡
      元組服務(wù)端哈希
      Python核心語(yǔ)法
      海量數(shù)據(jù)上有效的top-kSkyline查詢算法*
      云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
      新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
      基于減少檢索的負(fù)表約束優(yōu)化算法
      在Windows Server 2008上創(chuàng)建應(yīng)用
      基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
      基于維度分解的哈希多維快速流分類算法
      基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
      一種基于Bigram二級(jí)哈希的中文索引結(jié)構(gòu)
      北京市| 新乡市| 金乡县| 泸西县| 沧州市| 穆棱市| 朝阳区| 隆回县| 麦盖提县| 夹江县| 沙湾县| 尤溪县| 会宁县| 兴义市| 韶关市| 余庆县| 田东县| 鹤庆县| 龙门县| 邹城市| 精河县| 曲阳县| 景泰县| 巧家县| 南澳县| 阳泉市| 淄博市| 钟祥市| 建宁县| 广饶县| 长岛县| 灵璧县| 肃宁县| 东台市| 南溪县| 和龙市| 婺源县| 鄂托克前旗| 九龙城区| 乐东| 苍南县|