快取複製技術

複製是指在多個節點上維護數據的備份,包括基節點(伺服器)之間的複製和移動節點上保存資料庫的複製。一般前者稱為複製,後者稱為快取。複製的主要目的是提高分散式資料庫系統的可用性、可靠性或訪問性能,首要問題是如何維護多個複製節點上數據狀態的一致性。

基本介紹

  • 中文名:快取複製技術
簡介,兩級複製機制,Coda系統的斷接操作,快取失效報告廣播技術,三級複製體系結構,數據同步協定,

簡介

傳統的複製技術主要考慮在伺服器之間的複製,並且假設伺服器之間是經常保持連線的。此外,傳統的複製策略是靜態的,即由系統管理員統一安排好複製布局後就固定不變了,如果系統中用戶訪問範圍發生較大的變化而要求改變這種布局時,必須要管理員重新配置分布系統。因此,傳統複製技術在移動計算環境中不能有效工作。
同樣,快取技術也在傳統的分布資料庫中得到廣泛套用,它通過在客戶機上快取部分數據,達到減少訪問資料庫伺服器的目的,從而提高了性能。但是,傳統的快取技術要求客戶機保持與伺服器的連線,這樣才能維護快取的一致性。因此,對於經常需要斷接操作的移動客戶機來說,傳統的快取技術也是不能適應的。
按照維護複製一致性的方式來劃分,現有的複製協定可以分為:
a.嚴格一致性協定。
b.弱一致性協定。
嚴格一致性協定要求在任何時刻所有資料庫的複製都是一致的;而弱一致性協定允許各個複製之間存在暫時的不一致,但這種不一致總是保持在一定的界限內,而且總是能夠趨向於一致(收斂性)。
目前代表性的研究成果有:
a.兩級複製機制。
b.Coda系統的斷接操作。
c.快取失效報告廣播技術。
d.三級複製體系結構。
e.數據同步協定。

兩級複製機制

兩級複製機制以主拷貝更新複製協定為基礎。它假設移動資料庫系統由兩類節點組成:一類是基節點,他們連線在固定網路中,每個基節點都維護資料庫的一個複製(即第一級複製),並且是大部分數據對象的主節點;另一類是移動節點,它們有時通過無線網路與基節點連線,有時處於斷接狀態,它們也存有資料庫的複製(即第二級複製),可以在斷接時提交暫態事務。同時一個移動節點也可以是部分數據對象的主節點。
移動節點的每個複製數據對象都維護兩個版本:
a.主版本:從對象主節點得到的最新值。
b.暫態版本:由本地暫態事務更新的對象值。
類似的,事務也分成兩類:
a.基事務:基事務只在對象的主節點上執行,並更新對象的主拷貝。它們運行時可以涉及多個基節點,但最多只能訪問一個在線上的移動節點。
b.暫態事務:暫態事務對本地暫態數據操作,產生新的暫態版本。以後它將產生一個基事務,以更新主拷貝值,使暫態版本永久化。
暫態事務必須遵循一條範圍準則:它們只能訪問主節點是基節點或本身(即發出該事務的移動節點)的數據對象。
同樣基事務必須遵循一個可接受性準則:若它產生了與暫態事務不同的結果,如果該節點能夠通過準則測試,那么就是可以接受的。
兩級複製機制的主要特點是:
a.移動節點可以做暫態資料庫更新。
b.基事務的執行服從單拷貝可串性,因此基節點的狀態是可串化執行的結果。
c.只有在對應的基事務完成時,一個事務的結果才會成為永久的。
d.所有相連節點的複製都將收斂於基節點系統的狀態。

Coda系統的斷接操作

Coda系統是一種支持移動計算的分散式檔案系統。在Coda系統中,斷接操作是一個主要研究課題,其目的是支持移動客戶機在與伺服器斷開網路連線(即斷接)時,能夠繼續使用Coda檔案系統。與上面介紹的兩級複製機制不同,Coda只在客戶機上快取部分對象(目錄、檔案),而不是整個檔案系統的複製。因此,如何確定移動客戶需要快取哪些對象,以及如何保持快取對象與伺服器的同步,都是Coda致力解決的問題。
在用戶看來,Coda是一個集中的、位置透明的已分享檔案系統。Coda的名字空間以檔案卷(即一個目錄子樹)為粒度映像到不同的檔案伺服器上。每個Coda客戶機上都有一個快取管理器Venus負責獲得並快取這些卷的映像信息。
Coda使用兩種不同而又互補的機制來獲得高度的可用性。第一種機制是伺服器複製,允許檔案卷在多個伺服器上擁有讀寫複製。一個卷的複製節點集合稱為它的卷存儲組(Volume Storage Group,簡稱VSG),一個客戶機當前可訪問的VSG的子集稱為AVSG(Accessible VSG)。為了提高性能,客戶機可以快取部分對象,快取管理器Venus使用一種回叫(Callback)機制來保證每個打開的檔案內容都是AVSG中最新的。所謂回叫機制,就是當客戶機的某個快取對象已被伺服器更新時,由伺服器通知客戶機該快取對象已不再有效。
另一種機制就是斷接操作,它允許客戶機在斷接時,即AVSG為空集時,可以繼續訪問Coda檔案系統。此時,Venus通過本地快取來完成用戶的請求,並在客戶機重新在線上時將用戶的更新結果回送伺服器。

快取失效報告廣播技術

在傳統的客戶/伺服器系統中,有兩種方法來維護客戶快取的有效性:
a.伺服器傳送快取失效信息給客戶機。
b.客戶機通過查詢伺服器來驗證其快取的有效性。
在移動計算環境中,若採用前一種方法,由於移動客戶機經常斷接,斷接期間客戶機將無法收到快取失效信息,因此在重新在線上時必須將整個快取作廢,使快取失去其應有的作用;若採用後一種方法,又會嚴重浪費有限的無線網路頻寬。因此,上述兩種方法都不適合於移動客戶機的快取。
有人提出了一種新的快取失效報告技術,稱為快取失效報告廣播技術,伺服器定期或異步地廣播快取失效報告,使移動客戶機快取保持同步。
典型組織形式是:
a.快取失效報告由最近W秒內被更新的數據對象的最新時間戳構成。
b.快取失效報告只包括上次廣播以來被更新數據對象的標識符(ID)。
對於經常在線上的客戶機,適合採用後一種組織形式,因為其失效報告較小,可以節約寶貴的網路頻寬。而對於經常斷接的客戶機,若採用後一種組織形式,則每次重新在線上時客戶機的快取都必須全部作廢,這時採用前一種組織形式就比較合適,通過設定合適的W值,可以允許客戶機在重新在線上時,從新的失效報告中獲知在其斷接期間被更新的對象,進而清除快取中已失效的對象,其他快取對象則繼續有效。

三級複製體系結構

三級複製體系結構(TTR,Three-Tier Replication Architecture)能靈活有效地支持各種類型的移動數據套用,實現上面提到的移動資料庫的四個基本目標。三級複製(TTR)體系結構如下。
第一級複製是指伺服器之間利用傳統的複製技術在固定高速網路中所進行的複製,稱之為“伺服器級複製”。為了支持移動計算環境,一般採用一種弱一致性伺服器級複製機制(WCSR,Weakly Consistent Server Replication)。這種策略讓每個複製伺服器都支持查詢與更新操作,並且允許各個複製之間存在暫時的不一致。因此,一個用戶在訪問資料庫時,只需要訪問一個複製伺服器即可,而且不僅可以執行查詢事務,還支持更新事務。伺服器接到一個查詢事務之後,根據本地資料庫的狀態返回查詢結果。對於更新事務,伺服器則將其記入暫時事務日誌中,在本地資料庫上執行,並立即返回給用戶其標識符和結果,用戶不必等待伺服器將該事務的結果傳遞給其他複製伺服器,因此具有較短的回響時間。為了降低通信開銷、提高可靠性,WCSR採用了一種周期成對同步的方式,即每個伺服器周期地選擇另一個伺服器,兩個伺服器之間交換各自的暫時事務日誌,經過有限次的成對同步過程,最終使所有資料庫狀態達成一致。
第二級複製是指伺服器利用無線網路固有的廣播能力將資料庫中經常被大部分用戶訪問的公共熱點數據組織起來,經由MSS向無線網路單元內的所有移動客戶機廣播。這實際上是在無線廣播信道上做數據複製(唯讀的),稱之為“空中複製”。空中複製能充分利用無線網路非對稱性的特點,首先,因為無線網路特有的廣播能力與普通網路中的廣播顯著不同,它可以支持大量移動客戶機同時接收,而且不管接收的客戶數有多少,MSS的廣播代價並不改變,這就允許大規模的移動用戶同時訪問被廣播的熱點數據,極大地提高系統的可伸縮性。其次,由於移動客戶機可以從空中複製取得常用的熱點數據,使得其向伺服器傳送訪問請求的頻率也大幅減少,甚至沒有必要再與伺服器在線上,這不僅可以使移動客戶機更有效地使用上行鏈路或避免代價較高的無線通信,而且減少了伺服器處理每個在線上移動客戶機的開銷,進而使伺服器可以同時接收更多在線上移動客戶機的訪問。可見,空中複製是一項開銷不大,但卻很有實際套用意義的技術。
第三級複製是為了支持移動用戶的斷接操作,移動客戶機利用本身的處理和存儲能力快取資料庫中的部分數據,稱之為“客戶機快取”。由於移動客戶機的存儲容量無法與資料庫伺服器相比,而且普通用戶也不需要在斷接期間訪問整個資料庫系統,因此在TTR體系中一般採用一種支持資料庫的子集快取的移動客戶機快取機制,稱作MCC(Mobile Client Caching)機制。MCC快取機制的核心是快取管理器。它在不同的網路連線條件下具有三種不同的工作狀態,即在線上狀態、脫機狀態、集成狀態。在在線上狀態下,快取管理器將移動客戶機用戶的事務轉交給伺服器執行,並負責建立與維護移動客戶機的快取;在脫機狀態下,快取管理器仿真伺服器的功能,並將用戶更新事務記錄在本地的脫機事務日誌中;最後,在集成狀態下,快取管理器與伺服器合併,並回到在線上狀態。

數據同步協定

雖然目前已經有了一些數據同步協定,而且各種新的協定還在不斷產生,但它們都有很大的局限性,其中大多數只能支持有限種類的設備、系統及數據類型。這些互不兼容的協定增加了各方面工作的複雜度,而且這類協定的增加會限制移動設備的使用。正是基於此,當今世界的一些通信業先鋒才聯合起來,致力於開發一種全行業通用的開放性的移動數據同步協定,並將其命名為SyncML。
SyncML的典型套用是移動設備和網路伺服器之間的數據同步。除此之外,SyncML還可用於對等的數據同步,如兩台PC之間。SyncML的同步過程是由同步雙方相互傳送一系列訊息來完成的,訊息的格式都在SyncML表示協定中做了具體定義。
SyncML的訊息都是以XML格式的文檔定義的,而XML是文本文檔標記的工業標準,這必將極大地促進SyncML的推廣和普及。
有了SyncML,網路數據可以通過多種設備同步,用戶可以使用不同的設備(包括掌上電腦、行動電話等)訪問和操作同一網路數據。此外,用戶的個人信息(如電子郵件、通訊錄等)能夠在用戶的不同設備上同時得到更新,並保持一致。比如,用戶在掌上電腦上閱讀了一封新收到的郵件,那么在他的台式機中,也會自動地將這封郵件顯示為已讀郵件。有了SyncML,用戶還可以在他的移動設備上更多地使用套用軟體和信息,如果對這些軟體和信息有所更新,可以隨時將這些更新信息同步到辦公室設備或網路。
SyncML客戶機通常是行動電話、PDA、PC等,而SyncML伺服器可以是專門的伺服器或PC。一般情況下是由客戶機首先把自己的更改信息傳送給伺服器,並等待伺服器的應答,而伺服器在接收到更改信息後要進行同步分析以檢測和解決衝突,然後把處理結果和更改要求返回給客戶機。但也有些情況是由伺服器首先開始同步過程。
在SyncML同步協定中定義了七種同步類型:
(1)雙向同步
雙向同步是最常見也最具有代表性的一種同步,其他同步過程都和它有很多相似之處。雙向同步總是由客戶機首先發起,然後客戶端和伺服器互換更新信息。同步過程如下:同步初始化,客戶端準備要傳送的數據,客戶端傳送自己的更新信息,伺服器接收並進行分析處理,伺服器返回處理的狀態信息和自己的更新信息,客戶端接收更新信息並對自己的資料庫進行更新,客戶端把更新的狀態信息傳送給伺服器,其中包含插入記錄的ID映射信息,伺服器對客戶端傳送的映射信息做應答,客戶端收到伺服器的應答後,把同步結果通知用戶。
(2)慢同步
慢同步是雙向同步的一種。在一般的雙向同步中,客戶機只是把自己在上次同步過程中所做的修改傳送給伺服器。而在慢同步中,客戶機則把自己所有的數據都發給伺服器,伺服器逐一比較接收到的數據和自己的數據,以確定客戶端哪些數據需要更新,然後把這些更新信息傳送給客戶端。需要慢同步的情況一般有:設備之間第一次同步、修改日誌丟失、同步雙方的同步標誌不匹配。由於產生慢同步的原因很多,所以客戶機和伺服器雙方都有可能發起慢同步。
(3)客戶端單向同步
只由客戶機向伺服器傳送上次同步之後自己更新的信息,而伺服器不把自己的更新信息傳送給客戶端。
(4)客戶端刷新同步
屬於客戶端單向同步的一種。客戶機把自己所有的數據都發給伺服器,並刷新伺服器上的數據。
(5)伺服器單向同步
客戶機從伺服器那裡得到上次同步之後伺服器所有的更新信息,但不向伺服器傳送自己的更新信息。
(6)伺服器刷新同步
屬於伺服器單向同步的一種。伺服器把所有的數據都發給客戶端,並刷新客戶端的數據。
(7)伺服器發起的同步
前面六種同步方式都是由客戶機主動發起的同步過程,而這種同步方式是由伺服器首先通知客戶端,讓其開始某種類型的同步。

相關詞條

熱門詞條

聯絡我們