基於網格的數據傳輸與複製技術研究論文

所謂數據複製,就是將數據庫中的數據資源複製到一個或多個不同的物理站點上。數據複製技術可以有效地保證目標數據庫與源數據庫的中數據的一致性。 目前,很多領域都會用到數據通信複製技術,如分佈對象系統、移動計算和分佈式數據庫系統等。

基於網格的數據傳輸與複製技術研究論文

1 數據複製的概念

所謂數據複製,就是將數據庫中的數據資源複製到一個或多個不同的物理站點上。數據複製技術可以有效地保證目標數據庫與源數據庫的中數據的一致性。

1.1 訪問地有效性

我們在進行數據處理裏,有時候受到網絡的限制無法使用廣域網WAN,爲了可以繼續訪問本地數據,我們可以採用數據複製技術。在複製時,用戶可以直接在本地訊問數據,非常方便,而不用通過數據庫之間的網絡連接來獲取用戶需要的數據資源。

1.2 縮短響應時間

數據複製可以縮短數據請求的響應時間,其原因如下:

1)由於數據複製的請求是在本地服務器上進行的,不需要訪問網絡,所以檢索速度更快。

2)在本地服務器上處理數據減輕了中心數據庫服務器的負擔,同時也緩解了對處理器時間的爭用。

1.3 事務的完整性

確保每個數據庫始終保持事務完整性是任何複製系統都面臨的挑戰。Replication Server 和 SQL Remote 按以下方式複製事務日誌的各個部分,因此在複製期間可保持事務的完整性。

MobiLink合併多個已提交的事務中所做的更改。這些更改以單個事務的方式應用到另一數據庫中。

1.4 數據的準確性

我們在數據複製時,要使整個系統中的數據保持一致,提高數據的準確性。複製系統在整個體系中將工作時所做的改變以準確無誤的方式複製到其他站點上,但是不同的站點在同一時間擁有不同的數據副本。

2 數據複製的分類

在數據複製技術中,複製配置和複製類型是兩個重要方面,是區別不同複製技術的主要指標。配置,指的是有多少個源服務器被複制到多少個目標服務器,包括一對一複製、一對多複製、多對一複製、多對多複製。複製類型,指的是程序如何在兩個系統之間進行數據同步,一個複製解決方案可能根據計劃好的時間間隔來使數據保持同步,也可以用同步複製或異步複製的方式連續進行數據複製。數據複製類型主要有以下幾種:

1)同步複製

在一個同步複製環境中,爲了確保目標系統上最高程度的數據整體性,數據必須在主系統完成寫入之前被寫入到目標系統中。一方面,同步複製使得無論何時,目標系統上的數據都與源系統數據完全相同;另一方面,同步複製也可能導致源系統的性能延遲,尤其是在兩個系統間的網絡連接速度比較慢的情況下,延遲問題更爲嚴重。

2)異步複製

在異步複製時,複製軟件會對數據進行排隊,然後在網絡可用期間在系統之間批處理地傳遞改變的數據,源系統在執行前不會等候目標系統的確認。爲了保持數據的完整性,有些解決方案將同步和異步複製操作組合在一起:當發生通訊問題時,同步複製會轉爲異步複製;當通訊問題解決後,又會轉回同步方式。

3)計劃複製

對有些用途而言,連續的複製不是理想的方案,採用計劃複製更爲適宜。在這種複製方式中,變化的數據將按預先設定的時間間隔被同步複製。

數據複製技術的應用範圍非常廣,不同的範圍內,複製的目標數據、數據複製粒度及重要技術都有很大差別。如分佈數據庫、分佈對象和移動計算等,這些應用領域和分佈式儲存關係非常密切。分佈數據庫系統的關鍵技術是非常有效的數據複製技術,它可以幫助我們有效地提高數據庫系統的性能,如增強系統容錯能力、改善數據訪問性能和實現數據系統的負載平衡等。

由於移動環境下網絡帶寬低、速度慢。如果採用數據複製技術,可以根據當前用戶的訪問需求和分佈情況,進行動態數據複製。這樣做的好處是:可以使移動用戶就近訪問並複製所需的數據,大大提高訪問的性能。

3 數據網格中的數據複製技術

爲了改善數據網格系統性能,我們在網絡系統中大範圍地使用了數據複製技術。與傳統分佈式系統應用領域中的複製相比,數據網格中的複製技術在複製目標、複製粒度、複製關鍵技術等方面表現出獨特性質。數據網格系統中,採用數據複製技術的目的是爲了節省網絡帶寬、減少系統的訪問時間等。在使用數據複製技術時通過數據在網格中的流動,實現數據網格系統的性能優化,也就是根據用戶的訪問需求和數據網格系統的數據特徵自動將數據流複製到不同的網格節點或服務器上。

3.1 在網格中數據複製的特點

數據複製技術可以多個服務器上建立數據備份,如果我們在操作過程中發現某個服務器中的數據出錯,就可以使用其他服務器進行操作,這樣可以提高數據的準確性和數據的可用性。數據複製技術爲了提高使用效率,降低傳輸負載,一般都會將遠程服務器中的數據複製到本地服務器,讓用戶就近訪問並複製所需的數據,大大提高訪問的性能。但是,網格中的數據複製技術與分佈對象等、分佈數據庫中的複製技術相比,還有一些問題要注意改進。

1)在數據系統中,用戶可以把數據存儲爲一般文件、XML文件及各類數據庫文件等;

2)而在數據網格系統中,需要充分考慮網絡開銷,這和數據庫、分佈對象系統選擇副本時是不同的,只在減少網絡開銷,才能提高使用數據的速度;

3)在數據網格系統中,由於網格環境是呈動態性的,而且數據副本的數量可達幾百甚至更多,存在巨大的數據量,爲了對副本進行有效管理;我們必須採用合理的動態副本創建策略才能滿足要求;

4)一方面,數據網格系統中的數據量巨大,且操作頻率很高,整個文件的內容會被一個操作改寫。這和傳統的數據庫中副本同步時幾個小事務的操作有着很大的不同;而另一方面,數據網格中的數據廣泛分佈和複製在WAN上,更加靈活,一般的保持副本一致性算法並不適用於此。

3.2 在數據網格中對複製系統的相關需求

根據網絡系統特點和對數據複製技術的分析,我們在使用數據網格下的數據複製系統需要注意以下幾點需求:

1)動態性:在創建副本時,複製系統可以按需動態創建副本和刪除副本;

2)適應性:複製系統需要考慮各種網絡問題,如本地網速、用戶網速以及訪問失敗等多種情況;

3)安全性:在創建副本時,應保證用戶數據訪問的安全,不讓有圖謀的他人進入;

4)有效性:複製系統創建副本時必須考慮資源和時間的開銷,用自己能利用的資源設計出最佳方案;

5)靈活性:複製系統能夠根據操作需要,靈活創建、刪除和管理副本。

3.3 數據網格複製

Globus中數據管理的另一個基本服務是複製(replica management),Globus中數據的複製管理主要是針對遠程的大型數據庫文件進行訪問。replica的原意是指複製品,即在文件複製時要與其本身保持一致性。爲了滿足這個要求,在複製管理體系結構中,必須要有一個支持WAN的分佈式數據庫。這樣就可以在對文件複製時進行修改。同時,在原子操作時對文件進行加密。

在Globus項目中沒有采用複雜的分佈數據庫。Globus中的複製管理服務實際上沒有按照“replica”的一般語義進行實現,而是對“replica”語義放寬了限制,對於文件的多個複製操作,Globus的複製服務不會主動執行任何操作來檢查確保文件的一致性。而當用戶在複製一個註冊的邏輯集合文件時,則需要由操作來保持數據文件之間的一致性。

在分佈式計算的環境中,有時會遇到計算失敗,或網絡問題,這就給我們的複製管理服務提出了更高的要求,可以快速從錯誤中回覆,並保持數據的一致性。在Globus的複製管理服務功能中只能夠保證註冊文件的一致性,但不能保證存儲在複製管理服務中信息的.一致性。

Globus複製目錄服務可以使科學應用程序快速地進行數據訪問,它是Globus複製管理的核。其工作原理是智能地把部分相關數據放置在離科學應用程序最近的位置。複製管理服務的功能主要包括:註冊新的拷貝到複製目錄中以、創建全部或部分文件集合的新拷貝、允許用戶查詢複製目錄來找到部分或全部文件集合的拷貝。

4 基於網格環境中的數據複製具體實現

在網格環境中,我們在數據複製前要對具體問題進行具體分析,做好規劃與設計。這就需要我們在設計時必須確定出需要複製的數據對象、數據庫站點及類型、衝突解決方案、同步方式等內容。從而設計出一套詳實並能滿足實際業務需求的合理方案。在進行詳細的規劃與設計後,我們就可以按計劃實現數據複製,具體操作如下:

1)創建數據複製站點;

2)創建組對象;

3)配置合理、詳實的解決衝突方案。

下面,我們舉例說明相關操作。我們會設置主控站點和共享數據表各兩個,採用多主控站點複製方式。

主控站點分別爲處理站點(d)和解釋站點(d);數據表分別爲測區(region)和測線(line)。

1)用系統身份進行登錄並訪問主站點數據庫。

2)爲每個複製站點創建新用戶,併爲其授權複製管理員身份,其主要任務是負責創建並管理複製的站點,其代碼如下圖所示:

3)指定本站點的propagator,其主要職責是將本地的最新數據傳播到其他站點上,完成任務。

4)指定本站點的receiver,其主要職責是接收其他站點上的propagator傳輸過來的數據,其代碼如下圖所示:

5)爲了提高運行速度,我們需要定時清除已經加載的事務,在本例中設定每小時清除一次。這樣做的目的是避免事務隊列過長。

6)調度數據庫鏈接

我們用同樣的方法法創建處理站點(d)和解釋站點(d)。創建的過程如下:首先,需要先在各個主控站點之間建立數據庫鏈接,我們需要先建立一個公用的數據庫鏈接,讓它爲其他私有數據庫鏈接提供服務。同時,我們需要在解釋站點(d)上建立與處理站點(d)的數據庫鏈接。其次,我們要爲每個數據庫鏈接定義系統調度的時間。

5 解決數據複製中的衝突問題

在進行數據庫系統和應用程序設計過程中,設計者會考慮到衝突的問題,在設計時進行優化操作,但是站點之間的衝突問題並不能完全避免。一旦發生衝突,就需要採用衝突解決機制來處理,從而保證各站點數據的一致性。我們可以通過以下幾種方法來解決上述問題:

5.1 查看出錯命令的具體內容

當出現複製衝突問題時,我們要及時瞭解哪些數據容易出現衝突。在系統中,靜態數據很少出現衝突,發生衝突的主要是一些變化較大的動態數據。瞭解這一情況之後,我們要根據情況來解決衝突問題。其方法有如下幾種,方法1:建立各站點間的優先次序,在數據不一致時,系統以基準站點上的數據爲準;方法2:當數據不一致時,系統以某個站點上最新更新的修改爲準。

雖然數據庫中提供了很多解決方案來避免衝突,如針對更新衝突、刪除衝突、唯一性衝突等多種衝突的解決方案。這些方案都有相應的適用範圍,用戶可以根據具體的業務情況來選擇合適的方案來解決衝突問題。除了這些系統中的方案以外,我們還可以通過自定義方案的方法來處理衝突問題。

5.2 比較數據之間的差異

如果遇到一些查詢複製出錯的語句,使用人工處理同步失敗時相對容易。但是當複製錯誤的命令很多時,就會比較麻煩,使用以上方法難以處理。這種情況下,我們一般會選擇忽略失敗的複製命令,然後通過比較訂閱表的數據之間的差異來解決問題 。

在具體的數據複製應用中,還有許多複雜的問題亟需解決,這些問題需要我們在實際應用中繼續研究,深入探索。