Lotus 複製技術淺述

genusBIT發表於2008-07-15
複製機制是分散式系統的核心技術。Domino/Notes獨特的複製技術是業界爭相效仿的物件,
但是迄今為止還沒有任何一家在此技術領域能達到Lotus Domino/Notes的技術層次。該項技術
為群件系統關鍵技術,曾經幫助Domino/Notes贏得無數榮譽。下面我們將就此技術進行探討,希
望我們的解釋能消除你們對此技術的疑慮。
為什麼需要複製技術
資訊並非總是可以集中存放在某一個地點,某一臺主機上的。為了系統管理方便我們通常
理想化地試圖把所有資訊集中存放在一個地方、甚至一臺主機上。但是由於多媒體資訊以驚人
的速度生長,海量的資訊常常使我們的網路或者主機系統成為資訊處理的瓶頸。為了解決這些
海量資訊處理問題,由此誕生了分散式處理系統,她可以發揮網路資源的優勢,利用網路上的
各個節點來分擔中央節點的負載。為保證各節點之間協同工作,最大限度的共享資訊資源。因
此就有了分散式系統的資訊同步技術――複製。
Domino/Notes複製技術概述
辦公資訊並非總是從總部流向遠端辦事處和合作夥伴。事實上,大部分資訊來源於整個社
會群體。資訊平臺要能使資訊在組織內部移動,這樣可使所有使用者得到最新的工程專案、最新
的討論或最新的文件。這就表明,資訊平臺應支援各分佈站點採用同時向各個方向繁殖新的或
更新的材料,而不只是從中央源頭帶給接收人。這一複製能力一直是Notes產品面市以來的一個
顯著特色。
Domino/Notes複製技術可以保證分散式資料庫的資料同步、支援移動辦公,其特性包括雙
向與端對端複製、欄位級、選擇性的、可以在後臺進行等,所有的複製操作均採用相同的複製
機制。相對Domino/Notes,目前還沒有其它任何一家產品在單一複製模式下能完成如此精細的
複製控制,而且一般複製是基於文件級操作,不象Domino/Notes一樣是更有效的欄位級,並缺
乏選擇性複製的能力(有些利用的是基於郵件的同步機制。例如:MS Exchange,而不是驗證數
據準確性的同步演算法,另外對於不同的連線速度或頻寬,Exchange採用不同的MTA,更加劇了其
複製機制的不一致性。)。
Domino/Notes複製衝突與併發訪問控制
Domino/Notes是典型的分散式系統,分散式系統的體系結構決定了併發控制的複雜性。解
決併發控制有兩種方案。下面就這兩種方案討論一下其優劣。
第一種方案:採用記錄共享鎖與排它鎖控制併發訪問。此種方案可以解決併發寫操作過程
中更新資料互相覆蓋的問題,但是如果分散式系統節點多、併發使用者量大時將會嚴重影響系統
響應速度。因為如果採用記錄共享鎖與排它鎖控制併發訪問,任何一個使用者開啟編輯系統中的
任何一條記錄或文件時,系統將要對分散式系統每一個資料節點上的該條記錄或文件進行加鎖。
這樣會佔用大量的系統資源,在廣域網頻寬較窄的情況下,尤其會大大影響系統效能。事實上
關聯式資料庫系統採用的就是這種併發控制手段,但是基於上述原因在實際應用中極少採用。
第二種方案:就是Domino/Notes採用的方案。Domino/Notes採用許可權控制的手段儘量避免
讓多個使用者併發修改同一條記錄或文件。由於Domino/Notes許可權控制非常精細,可以指定每條
記錄或文件的作者(只有記錄或文件作者才可以編輯它)。這樣就大大減少了多個使用者編輯同一
條記錄或文件的機會。即使出現多使用者編輯同一條記錄或文件的情況,只要他們修改的不是該
記錄或文件的同一個域(欄位),Domino/Notes在同步複製的時候還是可以進行資訊合併的。也
就是說Domino/Notes會自動識別新修改的資訊並把它儲存下來。如果發生多使用者編輯同一條記
錄或文件同一個域(欄位)資訊的情況(經過上述兩種控制後此種情況發生概率較小),為了避免
更新資料丟失,Domino/Notes會根據資料更新的時間與次數判斷選出一個更新的文件作為主文
檔,另一條文件將會作為衝突文件顯示在主文件下面,使用者可以來決定該資料的取捨。這樣就
最大限度地保護了併發寫操作的資料一致性與完整性,而且不會對分散式系統效能造成不良影
響。
總結
比較上述兩種方案權衡各種利弊得失,我們不難看出Lotus Domino/Notes採用的是一種更
為行之有效的策略來實現系統併發控制問題。複製衝突並不是系統產生的問題而是解決併發寫
操作的一個有效手段。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14751907/viewspace-401653/,如需轉載,請註明出處,否則將追究法律責任。

相關文章