基于網(wǎng)格的數(shù)據(jù)傳輸與復(fù)制技術(shù)研究論文
所謂數(shù)據(jù)復(fù)制,就是將數(shù)據(jù)庫中的數(shù)據(jù)資源復(fù)制到一個(gè)或多個(gè)不同的物理站點(diǎn)上。數(shù)據(jù)復(fù)制技術(shù)可以有效地保證目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫的中數(shù)據(jù)的一致性。 目前,很多領(lǐng)域都會(huì)用到數(shù)據(jù)通信復(fù)制技術(shù),如分布對(duì)象系統(tǒng)、移動(dòng)計(jì)算和分布式數(shù)據(jù)庫系統(tǒng)等。
1 數(shù)據(jù)復(fù)制的概念
所謂數(shù)據(jù)復(fù)制,就是將數(shù)據(jù)庫中的數(shù)據(jù)資源復(fù)制到一個(gè)或多個(gè)不同的物理站點(diǎn)上。數(shù)據(jù)復(fù)制技術(shù)可以有效地保證目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫的中數(shù)據(jù)的一致性。
1.1 訪問地有效性
我們?cè)谶M(jìn)行數(shù)據(jù)處理里,有時(shí)候受到網(wǎng)絡(luò)的限制無法使用廣域網(wǎng)WAN,為了可以繼續(xù)訪問本地?cái)?shù)據(jù),我們可以采用數(shù)據(jù)復(fù)制技術(shù)。在復(fù)制時(shí),用戶可以直接在本地訊問數(shù)據(jù),非常方便,而不用通過數(shù)據(jù)庫之間的網(wǎng)絡(luò)連接來獲取用戶需要的數(shù)據(jù)資源。
1.2 縮短響應(yīng)時(shí)間
數(shù)據(jù)復(fù)制可以縮短數(shù)據(jù)請(qǐng)求的響應(yīng)時(shí)間,其原因如下:
1)由于數(shù)據(jù)復(fù)制的請(qǐng)求是在本地服務(wù)器上進(jìn)行的,不需要訪問網(wǎng)絡(luò),所以檢索速度更快。
2)在本地服務(wù)器上處理數(shù)據(jù)減輕了中心數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān),同時(shí)也緩解了對(duì)處理器時(shí)間的爭(zhēng)用。
1.3 事務(wù)的完整性
確保每個(gè)數(shù)據(jù)庫始終保持事務(wù)完整性是任何復(fù)制系統(tǒng)都面臨的挑戰(zhàn)。Replication Server 和 SQL Remote 按以下方式復(fù)制事務(wù)日志的各個(gè)部分,因此在復(fù)制期間可保持事務(wù)的完整性。
MobiLink合并多個(gè)已提交的事務(wù)中所做的更改。這些更改以單個(gè)事務(wù)的方式應(yīng)用到另一數(shù)據(jù)庫中。
1.4 數(shù)據(jù)的準(zhǔn)確性
我們?cè)跀?shù)據(jù)復(fù)制時(shí),要使整個(gè)系統(tǒng)中的數(shù)據(jù)保持一致,提高數(shù)據(jù)的準(zhǔn)確性。復(fù)制系統(tǒng)在整個(gè)體系中將工作時(shí)所做的改變以準(zhǔn)確無誤的方式復(fù)制到其他站點(diǎn)上,但是不同的站點(diǎn)在同一時(shí)間擁有不同的數(shù)據(jù)副本。
2 數(shù)據(jù)復(fù)制的分類
在數(shù)據(jù)復(fù)制技術(shù)中,復(fù)制配置和復(fù)制類型是兩個(gè)重要方面,是區(qū)別不同復(fù)制技術(shù)的主要指標(biāo)。配置,指的是有多少個(gè)源服務(wù)器被復(fù)制到多少個(gè)目標(biāo)服務(wù)器,包括一對(duì)一復(fù)制、一對(duì)多復(fù)制、多對(duì)一復(fù)制、多對(duì)多復(fù)制。復(fù)制類型,指的是程序如何在兩個(gè)系統(tǒng)之間進(jìn)行數(shù)據(jù)同步,一個(gè)復(fù)制解決方案可能根據(jù)計(jì)劃好的時(shí)間間隔來使數(shù)據(jù)保持同步,也可以用同步復(fù)制或異步復(fù)制的方式連續(xù)進(jìn)行數(shù)據(jù)復(fù)制。數(shù)據(jù)復(fù)制類型主要有以下幾種:
1)同步復(fù)制
在一個(gè)同步復(fù)制環(huán)境中,為了確保目標(biāo)系統(tǒng)上最高程度的數(shù)據(jù)整體性,數(shù)據(jù)必須在主系統(tǒng)完成寫入之前被寫入到目標(biāo)系統(tǒng)中。一方面,同步復(fù)制使得無論何時(shí),目標(biāo)系統(tǒng)上的數(shù)據(jù)都與源系統(tǒng)數(shù)據(jù)完全相同;另一方面,同步復(fù)制也可能導(dǎo)致源系統(tǒng)的性能延遲,尤其是在兩個(gè)系統(tǒng)間的網(wǎng)絡(luò)連接速度比較慢的情況下,延遲問題更為嚴(yán)重。
2)異步復(fù)制
在異步復(fù)制時(shí),復(fù)制軟件會(huì)對(duì)數(shù)據(jù)進(jìn)行排隊(duì),然后在網(wǎng)絡(luò)可用期間在系統(tǒng)之間批處理地傳遞改變的數(shù)據(jù),源系統(tǒng)在執(zhí)行前不會(huì)等候目標(biāo)系統(tǒng)的確認(rèn)。為了保持?jǐn)?shù)據(jù)的完整性,有些解決方案將同步和異步復(fù)制操作組合在一起:當(dāng)發(fā)生通訊問題時(shí),同步復(fù)制會(huì)轉(zhuǎn)為異步復(fù)制;當(dāng)通訊問題解決后,又會(huì)轉(zhuǎn)回同步方式。
3)計(jì)劃復(fù)制
對(duì)有些用途而言,連續(xù)的復(fù)制不是理想的方案,采用計(jì)劃復(fù)制更為適宜。在這種復(fù)制方式中,變化的數(shù)據(jù)將按預(yù)先設(shè)定的時(shí)間間隔被同步復(fù)制。
數(shù)據(jù)復(fù)制技術(shù)的應(yīng)用范圍非常廣,不同的范圍內(nèi),復(fù)制的目標(biāo)數(shù)據(jù)、數(shù)據(jù)復(fù)制粒度及重要技術(shù)都有很大差別。如分布數(shù)據(jù)庫、分布對(duì)象和移動(dòng)計(jì)算等,這些應(yīng)用領(lǐng)域和分布式儲(chǔ)存關(guān)系非常密切。分布數(shù)據(jù)庫系統(tǒng)的關(guān)鍵技術(shù)是非常有效的數(shù)據(jù)復(fù)制技術(shù),它可以幫助我們有效地提高數(shù)據(jù)庫系統(tǒng)的性能,如增強(qiáng)系統(tǒng)容錯(cuò)能力、改善數(shù)據(jù)訪問性能和實(shí)現(xiàn)數(shù)據(jù)系統(tǒng)的負(fù)載平衡等。
由于移動(dòng)環(huán)境下網(wǎng)絡(luò)帶寬低、速度慢。如果采用數(shù)據(jù)復(fù)制技術(shù),可以根據(jù)當(dāng)前用戶的訪問需求和分布情況,進(jìn)行動(dòng)態(tài)數(shù)據(jù)復(fù)制。這樣做的好處是:可以使移動(dòng)用戶就近訪問并復(fù)制所需的數(shù)據(jù),大大提高訪問的性能。
3 數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)復(fù)制技術(shù)
為了改善數(shù)據(jù)網(wǎng)格系統(tǒng)性能,我們?cè)诰W(wǎng)絡(luò)系統(tǒng)中大范圍地使用了數(shù)據(jù)復(fù)制技術(shù)。與傳統(tǒng)分布式系統(tǒng)應(yīng)用領(lǐng)域中的復(fù)制相比,數(shù)據(jù)網(wǎng)格中的復(fù)制技術(shù)在復(fù)制目標(biāo)、復(fù)制粒度、復(fù)制關(guān)鍵技術(shù)等方面表現(xiàn)出獨(dú)特性質(zhì)。數(shù)據(jù)網(wǎng)格系統(tǒng)中,采用數(shù)據(jù)復(fù)制技術(shù)的目的是為了節(jié)省網(wǎng)絡(luò)帶寬、減少系統(tǒng)的訪問時(shí)間等。在使用數(shù)據(jù)復(fù)制技術(shù)時(shí)通過數(shù)據(jù)在網(wǎng)格中的流動(dòng),實(shí)現(xiàn)數(shù)據(jù)網(wǎng)格系統(tǒng)的性能優(yōu)化,也就是根據(jù)用戶的訪問需求和數(shù)據(jù)網(wǎng)格系統(tǒng)的數(shù)據(jù)特征自動(dòng)將數(shù)據(jù)流復(fù)制到不同的網(wǎng)格節(jié)點(diǎn)或服務(wù)器上。
3.1 在網(wǎng)格中數(shù)據(jù)復(fù)制的特點(diǎn)
數(shù)據(jù)復(fù)制技術(shù)可以多個(gè)服務(wù)器上建立數(shù)據(jù)備份,如果我們?cè)诓僮鬟^程中發(fā)現(xiàn)某個(gè)服務(wù)器中的數(shù)據(jù)出錯(cuò),就可以使用其他服務(wù)器進(jìn)行操作,這樣可以提高數(shù)據(jù)的準(zhǔn)確性和數(shù)據(jù)的可用性。數(shù)據(jù)復(fù)制技術(shù)為了提高使用效率,降低傳輸負(fù)載,一般都會(huì)將遠(yuǎn)程服務(wù)器中的數(shù)據(jù)復(fù)制到本地服務(wù)器,讓用戶就近訪問并復(fù)制所需的數(shù)據(jù),大大提高訪問的性能。但是,網(wǎng)格中的數(shù)據(jù)復(fù)制技術(shù)與分布對(duì)象等、分布數(shù)據(jù)庫中的復(fù)制技術(shù)相比,還有一些問題要注意改進(jìn)。
1)在數(shù)據(jù)系統(tǒng)中,用戶可以把數(shù)據(jù)存儲(chǔ)為一般文件、XML文件及各類數(shù)據(jù)庫文件等;
2)而在數(shù)據(jù)網(wǎng)格系統(tǒng)中,需要充分考慮網(wǎng)絡(luò)開銷,這和數(shù)據(jù)庫、分布對(duì)象系統(tǒng)選擇副本時(shí)是不同的,只在減少網(wǎng)絡(luò)開銷,才能提高使用數(shù)據(jù)的速度;
3)在數(shù)據(jù)網(wǎng)格系統(tǒng)中,由于網(wǎng)格環(huán)境是呈動(dòng)態(tài)性的,而且數(shù)據(jù)副本的數(shù)量可達(dá)幾百甚至更多,存在巨大的數(shù)據(jù)量,為了對(duì)副本進(jìn)行有效管理;我們必須采用合理的動(dòng)態(tài)副本創(chuàng)建策略才能滿足要求;
4)一方面,數(shù)據(jù)網(wǎng)格系統(tǒng)中的數(shù)據(jù)量巨大,且操作頻率很高,整個(gè)文件的內(nèi)容會(huì)被一個(gè)操作改寫。這和傳統(tǒng)的數(shù)據(jù)庫中副本同步時(shí)幾個(gè)小事務(wù)的操作有著很大的不同;而另一方面,數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)廣泛分布和復(fù)制在WAN上,更加靈活,一般的保持副本一致性算法并不適用于此。
3.2 在數(shù)據(jù)網(wǎng)格中對(duì)復(fù)制系統(tǒng)的相關(guān)需求
根據(jù)網(wǎng)絡(luò)系統(tǒng)特點(diǎn)和對(duì)數(shù)據(jù)復(fù)制技術(shù)的分析,我們?cè)谑褂脭?shù)據(jù)網(wǎng)格下的數(shù)據(jù)復(fù)制系統(tǒng)需要注意以下幾點(diǎn)需求:
1)動(dòng)態(tài)性:在創(chuàng)建副本時(shí),復(fù)制系統(tǒng)可以按需動(dòng)態(tài)創(chuàng)建副本和刪除副本;
2)適應(yīng)性:復(fù)制系統(tǒng)需要考慮各種網(wǎng)絡(luò)問題,如本地網(wǎng)速、用戶網(wǎng)速以及訪問失敗等多種情況;
3)安全性:在創(chuàng)建副本時(shí),應(yīng)保證用戶數(shù)據(jù)訪問的安全,不讓有圖謀的他人進(jìn)入;
4)有效性:復(fù)制系統(tǒng)創(chuàng)建副本時(shí)必須考慮資源和時(shí)間的開銷,用自己能利用的資源設(shè)計(jì)出最佳方案;
5)靈活性:復(fù)制系統(tǒng)能夠根據(jù)操作需要,靈活創(chuàng)建、刪除和管理副本。
3.3 數(shù)據(jù)網(wǎng)格復(fù)制
Globus中數(shù)據(jù)管理的另一個(gè)基本服務(wù)是復(fù)制(replica management),Globus中數(shù)據(jù)的復(fù)制管理主要是針對(duì)遠(yuǎn)程的大型數(shù)據(jù)庫文件進(jìn)行訪問。replica的原意是指復(fù)制品,即在文件復(fù)制時(shí)要與其本身保持一致性。為了滿足這個(gè)要求,在復(fù)制管理體系結(jié)構(gòu)中,必須要有一個(gè)支持WAN的分布式數(shù)據(jù)庫。這樣就可以在對(duì)文件復(fù)制時(shí)進(jìn)行修改。同時(shí),在原子操作時(shí)對(duì)文件進(jìn)行加密。
在Globus項(xiàng)目中沒有采用復(fù)雜的`分布數(shù)據(jù)庫。Globus中的復(fù)制管理服務(wù)實(shí)際上沒有按照“replica”的一般語義進(jìn)行實(shí)現(xiàn),而是對(duì)“replica”語義放寬了限制,對(duì)于文件的多個(gè)復(fù)制操作,Globus的復(fù)制服務(wù)不會(huì)主動(dòng)執(zhí)行任何操作來檢查確保文件的一致性。而當(dāng)用戶在復(fù)制一個(gè)注冊(cè)的邏輯集合文件時(shí),則需要由操作來保持?jǐn)?shù)據(jù)文件之間的一致性。
在分布式計(jì)算的環(huán)境中,有時(shí)會(huì)遇到計(jì)算失敗,或網(wǎng)絡(luò)問題,這就給我們的復(fù)制管理服務(wù)提出了更高的要求,可以快速從錯(cuò)誤中回復(fù),并保持?jǐn)?shù)據(jù)的一致性。在Globus的復(fù)制管理服務(wù)功能中只能夠保證注冊(cè)文件的一致性,但不能保證存儲(chǔ)在復(fù)制管理服務(wù)中信息的一致性。
Globus復(fù)制目錄服務(wù)可以使科學(xué)應(yīng)用程序快速地進(jìn)行數(shù)據(jù)訪問,它是Globus復(fù)制管理的核。其工作原理是智能地把部分相關(guān)數(shù)據(jù)放置在離科學(xué)應(yīng)用程序最近的位置。復(fù)制管理服務(wù)的功能主要包括:注冊(cè)新的拷貝到復(fù)制目錄中以、創(chuàng)建全部或部分文件集合的新拷貝、允許用戶查詢復(fù)制目錄來找到部分或全部文件集合的拷貝。
4 基于網(wǎng)格環(huán)境中的數(shù)據(jù)復(fù)制具體實(shí)現(xiàn)
在網(wǎng)格環(huán)境中,我們?cè)跀?shù)據(jù)復(fù)制前要對(duì)具體問題進(jìn)行具體分析,做好規(guī)劃與設(shè)計(jì)。這就需要我們?cè)谠O(shè)計(jì)時(shí)必須確定出需要復(fù)制的數(shù)據(jù)對(duì)象、數(shù)據(jù)庫站點(diǎn)及類型、沖突解決方案、同步方式等內(nèi)容。從而設(shè)計(jì)出一套詳實(shí)并能滿足實(shí)際業(yè)務(wù)需求的合理方案。在進(jìn)行詳細(xì)的規(guī)劃與設(shè)計(jì)后,我們就可以按計(jì)劃實(shí)現(xiàn)數(shù)據(jù)復(fù)制,具體操作如下:
1)創(chuàng)建數(shù)據(jù)復(fù)制站點(diǎn);
2)創(chuàng)建組對(duì)象;
3)配置合理、詳實(shí)的解決沖突方案。
下面,我們舉例說明相關(guān)操作。我們會(huì)設(shè)置主控站點(diǎn)和共享數(shù)據(jù)表各兩個(gè),采用多主控站點(diǎn)復(fù)制方式。
主控站點(diǎn)分別為處理站點(diǎn)(handle.world)和解釋站點(diǎn)(explain.world);數(shù)據(jù)表分別為測(cè)區(qū)(region)和測(cè)線(line)。
1)用系統(tǒng)身份進(jìn)行登錄并訪問主站點(diǎn)數(shù)據(jù)庫。
2)為每個(gè)復(fù)制站點(diǎn)創(chuàng)建新用戶,并為其授權(quán)復(fù)制管理員身份,其主要任務(wù)是負(fù)責(zé)創(chuàng)建并管理復(fù)制的站點(diǎn),其代碼如下圖所示:
3)指定本站點(diǎn)的propagator,其主要職責(zé)是將本地的最新數(shù)據(jù)傳播到其他站點(diǎn)上,完成任務(wù)。
4)指定本站點(diǎn)的receiver,其主要職責(zé)是接收其他站點(diǎn)上的propagator傳輸過來的數(shù)據(jù),其代碼如下圖所示:
5)為了提高運(yùn)行速度,我們需要定時(shí)清除已經(jīng)加載的事務(wù),在本例中設(shè)定每小時(shí)清除一次。這樣做的目的是避免事務(wù)隊(duì)列過長(zhǎng)。
6)調(diào)度數(shù)據(jù)庫鏈接
我們用同樣的方法法創(chuàng)建處理站點(diǎn)(handle.world)和解釋站點(diǎn)(explain.world)。創(chuàng)建的過程如下:首先,需要先在各個(gè)主控站點(diǎn)之間建立數(shù)據(jù)庫鏈接,我們需要先建立一個(gè)公用的數(shù)據(jù)庫鏈接,讓它為其他私有數(shù)據(jù)庫鏈接提供服務(wù)。同時(shí),我們需要在解釋站點(diǎn)(explain.world)上建立與處理站點(diǎn)(handle.world)的數(shù)據(jù)庫鏈接。其次,我們要為每個(gè)數(shù)據(jù)庫鏈接定義系統(tǒng)調(diào)度的時(shí)間。
5 解決數(shù)據(jù)復(fù)制中的沖突問題
在進(jìn)行數(shù)據(jù)庫系統(tǒng)和應(yīng)用程序設(shè)計(jì)過程中,設(shè)計(jì)者會(huì)考慮到?jīng)_突的問題,在設(shè)計(jì)時(shí)進(jìn)行優(yōu)化操作,但是站點(diǎn)之間的沖突問題并不能完全避免。一旦發(fā)生沖突,就需要采用沖突解決機(jī)制來處理,從而保證各站點(diǎn)數(shù)據(jù)的一致性。我們可以通過以下幾種方法來解決上述問題:
5.1 查看出錯(cuò)命令的具體內(nèi)容
當(dāng)出現(xiàn)復(fù)制沖突問題時(shí),我們要及時(shí)了解哪些數(shù)據(jù)容易出現(xiàn)沖突。在系統(tǒng)中,靜態(tài)數(shù)據(jù)很少出現(xiàn)沖突,發(fā)生沖突的主要是一些變化較大的動(dòng)態(tài)數(shù)據(jù)。了解這一情況之后,我們要根據(jù)情況來解決沖突問題。其方法有如下幾種,方法1:建立各站點(diǎn)間的優(yōu)先次序,在數(shù)據(jù)不一致時(shí),系統(tǒng)以基準(zhǔn)站點(diǎn)上的數(shù)據(jù)為準(zhǔn);方法2:當(dāng)數(shù)據(jù)不一致時(shí),系統(tǒng)以某個(gè)站點(diǎn)上最新更新的修改為準(zhǔn)。
雖然數(shù)據(jù)庫中提供了很多解決方案來避免沖突,如針對(duì)更新沖突、刪除沖突、唯一性沖突等多種沖突的解決方案。這些方案都有相應(yīng)的適用范圍,用戶可以根據(jù)具體的業(yè)務(wù)情況來選擇合適的方案來解決沖突問題。除了這些系統(tǒng)中的方案以外,我們還可以通過自定義方案的方法來處理沖突問題。
5.2 比較數(shù)據(jù)之間的差異
如果遇到一些查詢復(fù)制出錯(cuò)的語句,使用人工處理同步失敗時(shí)相對(duì)容易。但是當(dāng)復(fù)制錯(cuò)誤的命令很多時(shí),就會(huì)比較麻煩,使用以上方法難以處理。這種情況下,我們一般會(huì)選擇忽略失敗的復(fù)制命令,然后通過比較訂閱表的數(shù)據(jù)之間的差異來解決問題 。
在具體的數(shù)據(jù)復(fù)制應(yīng)用中,還有許多復(fù)雜的問題亟需解決,這些問題需要我們?cè)趯?shí)際應(yīng)用中繼續(xù)研究,深入探索。
【基于網(wǎng)格的數(shù)據(jù)傳輸與復(fù)制技術(shù)研究論文】相關(guān)文章:
數(shù)字電視數(shù)據(jù)傳輸技術(shù)研究論文10-25
基于知識(shí)網(wǎng)格的分布式數(shù)據(jù)挖掘論文04-25
基于移動(dòng)Agent系統(tǒng)的安全技術(shù)研究論文11-06
基于Android平臺(tái)軟件開發(fā)技術(shù)研究論文11-07
基于非連續(xù)頻譜的短波傳輸技術(shù)研究論文11-06