基於網格的資料傳輸與複製技術研究論文
基於網格的資料傳輸與複製技術研究論文
所謂資料複製,就是將資料庫中的資料資源複製到一個或多個不同的物理站點上。資料複製技術可以有效地保證目標資料庫與源資料庫的中資料的一致性。 目前,很多領域都會用到資料通訊複製技術,如分佈物件系統、移動計算和分散式資料庫系統等。
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)配置合理、詳實的解決衝突方案。
下面,我們舉例說明相關操作。我們會設定主控站點和共享資料表各兩個,採用多主控站點複製方式。
主控站點分別為處理站點(handle.world)和解釋站點(explain.world);資料表分別為測區(region)和測線(line)。
1)用系統身份進行登入並訪問主站點資料庫。
2)為每個複製站點建立新使用者,併為其授權複製管理員身份,其主要任務是負責建立並管理複製的站點,其程式碼如下圖所示:
3)指定本站點的propagator,其主要職責是將本地的最新資料傳播到其他站點上,完成任務。
4)指定本站點的receiver,其主要職責是接收其他站點上的propagator傳輸過來的資料,其程式碼如下圖所示:
5)為了提高執行速度,我們需要定時清除已經載入的事務,在本例中設定每小時清除一次。這樣做的目的是避免事務佇列過長。
6)排程資料庫連結
我們用同樣的方法法建立處理站點(handle.world)和解釋站點(explain.world)。建立的過程如下:首先,需要先在各個主控站點之間建立資料庫連結,我們需要先建立一個公用的資料庫連結,讓它為其他私有資料庫連結提供服務。同時,我們需要在解釋站點(explain.world)上建立與處理站點(handle.world)的資料庫連結。其次,我們要為每個資料庫連結定義系統排程的時間。
5 解決資料複製中的衝突問題
在進行資料庫系統和應用程式設計過程中,設計者會考慮到衝突的問題,在設計時進行最佳化操作,但是站點之間的衝突問題並不能完全避免。一旦發生衝突,就需要採用衝突解決機制來處理,從而保證各站點資料的一致性。我們可以透過以下幾種方法來解決上述問題:
5.1 查看出錯命令的具體內容
當出現複製衝突問題時,我們要及時瞭解哪些資料容易出現衝突。在系統中,靜態資料很少出現衝突,發生衝突的主要是一些變化較大的動態資料。瞭解這一情況之後,我們要根據情況來解決衝突問題。其方法有如下幾種,方法1:建立各站點間的優先次序,在資料不一致時,系統以基準站點上的資料為準;方法2:當資料不一致時,系統以某個站點上最新更新的修改為準。
雖然資料庫中提供了很多解決方案來避免衝突,如針對更新衝突、刪除衝突、唯一性衝突等多種衝突的解決方案。這些方案都有相應的適用範圍,使用者可以根據具體的業務情況來選擇合適的方案來解決衝突問題。除了這些系統中的方案以外,我們還可以透過自定義方案的方法來處理衝突問題。
5.2 比較資料之間的差異
如果遇到一些查詢複製出錯的語句,使用人工處理同步失敗時相對容易。但是當複製錯誤的命令很多時,就會比較麻煩,使用以上方法難以處理。這種情況下,我們一般會選擇忽略失敗的複製命令,然後透過比較訂閱表的資料之間的差異來解決問題 。
在具體的資料複製應用中,還有許多複雜的問題亟需解決,這些問題需要我們在實際應用中繼續研究,深入探索。