馬東波
摘 要:數(shù)據(jù)一致性方法對(duì)于分布式數(shù)據(jù)庫(kù)的研究來說至關(guān)重要。本文首先對(duì)分布式數(shù)據(jù)庫(kù)進(jìn)行了簡(jiǎn)要概述,在其基礎(chǔ)上,探究了分布式數(shù)據(jù)庫(kù)一致性方法,該方法不僅包括兩階段提交方法,同時(shí)還包括復(fù)制服務(wù)器方法,通過深入研究發(fā)現(xiàn),復(fù)制服務(wù)器方法更勝一籌,該方法不會(huì)因?yàn)槟骋粋€(gè)服務(wù)器發(fā)生故障而影響到其余場(chǎng)地的正常運(yùn)行,在恢復(fù)聯(lián)機(jī)以后,也可以保證數(shù)據(jù)同步。
關(guān)鍵詞:分布式數(shù)據(jù)庫(kù);一致性;復(fù)制服務(wù)器
1 分布式數(shù)據(jù)庫(kù)概述
分布式數(shù)據(jù)庫(kù)實(shí)際上就是將多個(gè)分散的數(shù)據(jù)存儲(chǔ)單元通過網(wǎng)絡(luò)連接構(gòu)成的一個(gè)具有統(tǒng)一性的數(shù)據(jù)庫(kù)。其主要思想為在集中式數(shù)據(jù)庫(kù)的基礎(chǔ)上,對(duì)數(shù)據(jù)進(jìn)行分散操作,使其按照相應(yīng)要求分散到各自的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上,然后以網(wǎng)絡(luò)連接的方式將所有的存儲(chǔ)節(jié)點(diǎn)連接到一起,從而擴(kuò)大存儲(chǔ)容量,使得并發(fā)訪問量有所提高。近幾年,數(shù)據(jù)量增長(zhǎng)的速度越來越快,在很短的時(shí)間內(nèi),分布式數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用就遍布到每一個(gè)角落,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)滿足不了人們的需求,分布式數(shù)據(jù)庫(kù)代替了集中式數(shù)據(jù)庫(kù),基于關(guān)系型的分布式數(shù)據(jù)庫(kù)仍然具有傳統(tǒng)的數(shù)據(jù)庫(kù)基本特征,但是從集中式存儲(chǔ)轉(zhuǎn)化為了分布式存儲(chǔ),與此同時(shí),分布式計(jì)算逐漸占據(jù)重要位置。
2 分布式數(shù)據(jù)庫(kù)一致性方法
2.1 兩階段提交
(1)主要思想與處理方法
如果一個(gè)場(chǎng)地?cái)?shù)據(jù)的事務(wù)涉及多個(gè)修改,那么其組成的成分不只一個(gè)子事務(wù)。整個(gè)事務(wù)主要包括兩個(gè)執(zhí)行劃分階段,分別是準(zhǔn)備階段以及提交階段。其中準(zhǔn)備階段要求做好所有關(guān)于子事務(wù)的處理準(zhǔn)備工作,并且回答相關(guān)問題,而提交階段要求所有的子事務(wù)處理工作全部完成。經(jīng)過兩個(gè)階段的劃分,第一種結(jié)果是提交所有的子事務(wù),第二種結(jié)果是退回所有子事務(wù),以此來達(dá)到多個(gè)場(chǎng)地的全部完成以及全部推遲的目的。由此可見兩階段提交方法主要通過完整性來展現(xiàn)數(shù)據(jù)的一致性。
該方法能夠?qū)⒁粋€(gè)應(yīng)用程序在兩個(gè)及兩個(gè)以上的服務(wù)器上完成協(xié)調(diào)更新操作,可以對(duì)兩個(gè)互不相干的事務(wù)當(dāng)作一個(gè)事務(wù)來處理。提交服務(wù)器來可以將所有的提交事務(wù)程序判定以及退回事務(wù)程序判斷全部記錄下來,然而這一功能的實(shí)現(xiàn)離不開中央記錄保持器。通過使用兩階段提交方法可以保證服務(wù)器中的數(shù)據(jù)庫(kù)的更新具有一致性,要么全部更新,要么全都不更新。
(2)主要工作流程
在使用兩階段提交方法當(dāng)中,針對(duì)準(zhǔn)備階段,用戶應(yīng)按照以下順序發(fā)送相應(yīng)的內(nèi)容:Trans-act-SQL語(yǔ)句為BEGIN TRANSACTION;對(duì)應(yīng)的修改語(yǔ)句為PREPARE TRANSACTION。只要是參與到其中的進(jìn)程就必須按照這個(gè)順序來執(zhí)行語(yǔ)句中的內(nèi)容,前者主要用于應(yīng)用進(jìn)程、提交服務(wù)進(jìn)程以及事務(wù)等信息的標(biāo)識(shí),后者主要起到修改內(nèi)容作用,與此同時(shí),該語(yǔ)句表示已經(jīng)做好準(zhǔn)備工作,可以提交相關(guān)內(nèi)容。
準(zhǔn)備工作完成以后,需要進(jìn)行提交,然而提交主要分為兩個(gè)步驟,第一,利用參與進(jìn)程來回答應(yīng)用進(jìn)程發(fā)出的提交準(zhǔn)備;第二,向提交服務(wù)進(jìn)程發(fā)出通知,告知已經(jīng)順利完成事務(wù),并發(fā)送相應(yīng)語(yǔ)句,保證所有參與到其中的進(jìn)程都能夠接收到該語(yǔ)句,從而達(dá)到正式提交的目的。
2.2 復(fù)制服務(wù)器
(1)主要思想與處理方法
在分布式數(shù)據(jù)庫(kù)中,每一個(gè)數(shù)據(jù)單位都有對(duì)應(yīng)的應(yīng)用場(chǎng)地,從而更好的對(duì)訪問對(duì)象進(jìn)行有效控制,進(jìn)一步提高數(shù)據(jù)庫(kù)的安全性,如果其他場(chǎng)地想要對(duì)其進(jìn)行訪問,可以向復(fù)制服務(wù)器提出申請(qǐng),待審核通過以后可以將需要使用的數(shù)據(jù)復(fù)制到該場(chǎng)地。為了保證這種方法的可用性,可以利用異步拷貝系統(tǒng),該系統(tǒng)的驅(qū)動(dòng)主要依靠相應(yīng)的事件來完成,復(fù)制的對(duì)象為修改涉及的數(shù)據(jù),所以系統(tǒng)在運(yùn)行時(shí)傳送的數(shù)據(jù)量不是很大。用戶在對(duì)其進(jìn)行查詢操作時(shí),只需要對(duì)涉及數(shù)據(jù)進(jìn)行查詢即可,從而縮短響應(yīng)時(shí)間。由此可見,該方法可以在很大程度上縮短查詢時(shí)間,實(shí)用性很強(qiáng)。
(2)利用復(fù)制服務(wù)器的分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)框架
如圖1所示為利用復(fù)制服務(wù)器的分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)框架。該結(jié)構(gòu)框架利用LTM將數(shù)據(jù)服務(wù)器處理數(shù)據(jù)轉(zhuǎn)移到復(fù)制服務(wù)器當(dāng)中,然后利用廣域網(wǎng)進(jìn)行分布式數(shù)據(jù)管理。
其主要復(fù)制操作過程如下:
LTM主要對(duì)事務(wù)的日?;顒?dòng)進(jìn)行監(jiān)視,一旦數(shù)據(jù)服務(wù)器中的事務(wù)發(fā)生任何改變,就會(huì)立即向主復(fù)制服務(wù)器發(fā)送改變信息,在接收到信息以后,該服務(wù)器會(huì)向遠(yuǎn)程復(fù)制服務(wù)器發(fā)送改變信息,而復(fù)制服務(wù)器會(huì)這些信息添加到自身的數(shù)據(jù)副本當(dāng)中,并且保證順序的正確性,從而使得事務(wù)的完整性得以有效保障。
假如不能夠正常運(yùn)行遠(yuǎn)程復(fù)制服務(wù)器,可以使用store- and-for-ward功能來對(duì)數(shù)據(jù)進(jìn)行修改,在接收到遠(yuǎn)程場(chǎng)地發(fā)送來的聯(lián)機(jī)信號(hào)以后,應(yīng)該在最短的時(shí)間內(nèi)進(jìn)行修改操作,以此來保證數(shù)據(jù)的一致性。
除此之外,復(fù)制服務(wù)器還具有替換功能,假如復(fù)制服務(wù)器發(fā)生停機(jī)現(xiàn)象或者數(shù)據(jù)服務(wù)器發(fā)生停機(jī)現(xiàn)象,那么可以選用其他指定場(chǎng)地來繼續(xù)完成該項(xiàng)操作,不僅如此,待停機(jī)恢復(fù)以后也可以保證數(shù)據(jù)同步。
3 總結(jié)
對(duì)于分布式數(shù)據(jù)庫(kù)來說,一致性方法的研究至關(guān)重要,本文主要研究了兩階段提交方法以及復(fù)制服務(wù)器方法,兩種方法都能夠充分體現(xiàn)出數(shù)據(jù)的一致性。但是通過對(duì)兩種方法進(jìn)行深入研究可以看出復(fù)制服務(wù)器方法較好一些,原因在于該方法不會(huì)因?yàn)槟骋粋€(gè)服務(wù)器發(fā)生故障而影響到其余場(chǎng)地的正常運(yùn)行,在恢復(fù)聯(lián)機(jī)以后,也可以保證數(shù)據(jù)同步。
參考文獻(xiàn)
[1]李留高.分布式數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)一致性研究[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(10):209-211.
[2]李章兵,車烏江.基于全局目錄的分布式數(shù)據(jù)庫(kù)數(shù)據(jù)一致性算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(9):77-80.
(作者單位:北京信息職業(yè)技術(shù)學(xué)院)