lotus 複製技術淺述
複製機制是分布式系統的核心技術。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採用的是一種更
為行之有效的策略來實現系統併發控制問題。複製衝突並不是系統產生的問題而是解決併發寫
操作的乙個有效手段。
淺述Try Catch 作用
1 using system 2using system.collections.generic 3using system.linq 4using system.text 56 namespace test09716 static void main string args 1722 catch ...
淺述陣列排序
陣列自帶的函式sort可以根據自定義的排序器排序 function compare v1,v2 var values 4,1,2,5,3 var vv values.sort compare console.info vv 如果有乙個複雜資料型別的集合需要排序時,處理方式有兩種 用comparato...
MySQL複製總述
mysql的複製功能是大規模 高效能應用的基礎,是 水平擴充套件 的架構。mysql複製解決的基本問題是讓一台伺服器的資料與其他伺服器保持同步。備庫本身也可以配置為其他伺服器的主庫。從技術角度看,mysql支援2中複製方式 基於行的複製和基於語句的複製。基於行的複製在5.1之後才開始出現。這兩種方式...