亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于驗證遠程數(shù)據(jù)庫的方法和系統(tǒng)的制作方法

文檔序號:6434422閱讀:153來源:國知局
專利名稱:用于驗證遠程數(shù)據(jù)庫的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實施例一般涉及計算機數(shù)據(jù)庫。更具體地說,這些實施例提供用于可靠地驗證遠程數(shù)據(jù)庫更新的方法和系統(tǒng)。
背景技術(shù)
隨著數(shù)據(jù)庫不斷增加的規(guī)模和高度分布式結(jié)構(gòu),已經(jīng)變得越來越難以保證網(wǎng)絡(luò)內(nèi)的相關(guān)數(shù)據(jù)庫包含相同版本的數(shù)據(jù)。如果出現(xiàn)對一個數(shù)據(jù)庫顯著的改變,則需要盡可能快地更新其它數(shù)據(jù)庫以包括這些改變。進行這些更新可能涉及頻繁地將大量更新數(shù)據(jù)移動到多個數(shù)據(jù)庫。這樣處理的潛在的復(fù)雜性可能是極大的。
這個問題也可能出現(xiàn)在其中通信是不可靠的系統(tǒng)內(nèi)。在這種情況下,可能在傳輸期間丟失數(shù)據(jù)。因此,必須重傳數(shù)據(jù),并再次全部更新其它數(shù)據(jù)庫。這種重復(fù)大大降低了系統(tǒng)效率以及數(shù)據(jù)庫包含最新數(shù)據(jù)的范圍。


圖1是根據(jù)本發(fā)明一種實施例的系統(tǒng)方框圖;圖2是根據(jù)本發(fā)明一種實施例的系統(tǒng)集線器的方框圖;圖3圖示根據(jù)本發(fā)明一種實施例的從本地數(shù)據(jù)庫到遠程數(shù)據(jù)庫的數(shù)據(jù)庫更新的示例性傳輸;圖4圖示根據(jù)本發(fā)明一種實施例的發(fā)送文件;圖5圖示根據(jù)本發(fā)明一種實施例的初始化發(fā)送文件;圖6是根據(jù)本發(fā)明一種實施例的發(fā)送文件和初始化發(fā)送文件生成的說明性定時圖;圖7是本發(fā)明一種實施例的流程圖,其中可生成本地數(shù)據(jù)庫的更新文件;
圖8是本發(fā)明一種實施例的流程圖,其中遠程數(shù)據(jù)庫可從本地數(shù)據(jù)庫接收更新文件。
圖9是本發(fā)明另一種實施例的流程圖,其中遠程數(shù)據(jù)庫可從本地數(shù)據(jù)庫接收和驗證更新文件。
圖10A是本發(fā)明一種實施例的流程圖,其中可驗證更新文件。
圖10B是本發(fā)明一種實施例的流程圖,其中可驗證更新文件。
圖11圖示根據(jù)本發(fā)明一種實施例的更新文件驗證。
具體實施例方式
本發(fā)明的實施例提供用于通過網(wǎng)絡(luò)驗證遠程數(shù)據(jù)庫更新的方法和系統(tǒng)??杀容^本地數(shù)據(jù)庫記錄和遠程數(shù)據(jù)庫記錄,并可生成例外(exception)。每個例外可描述遠程和本地數(shù)據(jù)庫記錄之間的差異。例外標識符可與每個例外相關(guān),其中例外標識符可與記錄的標識符相關(guān)。事件標識符可與更新中的每個事件相關(guān),其中事件標識符可與記錄的標識符相關(guān)。可比較對應(yīng)于該記錄的事件和例外,以確定此更新是否有效。
圖1是圖示根據(jù)本發(fā)明一種實施例的系統(tǒng)的方框圖。通常,系統(tǒng)100可裝備有一大型常駐內(nèi)存的數(shù)據(jù)庫,接收搜索請求并通過網(wǎng)絡(luò)提供搜索響應(yīng)。例如,系統(tǒng)100可以是對稱的多處理(SMP)計算機,例如由紐約的Armonk的國際商業(yè)機器公司制造的IBM RS/6000M80或S80、加利福尼亞州圣克來克的SunMicrosystems公司制造的Sun EnterprisTM10000等等。系統(tǒng)100也可以是多處理器個人計算機,例如加利福尼亞州Palo Alto的Hewlett-Packard公司制造的Compaq ProLiantTMML530(包括兩個Intel PentiumIII866MHz處理器)。系統(tǒng)100還可以包括多處理操作系統(tǒng),例如IBM AIX4、Sun SolarisTM8操作環(huán)境、Red Hat Linux6.2等等。系統(tǒng)100可以通過網(wǎng)絡(luò)124接收定期更新,此更新可同時并入數(shù)據(jù)庫內(nèi)。通過在不使用數(shù)據(jù)庫鎖定或接入控制的情況下將每個更新并入數(shù)據(jù)庫,本發(fā)明的實施例可實現(xiàn)非常高的數(shù)據(jù)庫搜索和更新吞吐量。
在一種實施例中,系統(tǒng)100可包括耦合到總線101的至少一個處理器102-1。處理器102-1可包括內(nèi)存超高速緩存(例如L1超高速緩存,為了清楚未圖示出)。輔助存儲器超高速緩存103-1(例如L2超高速緩存、L2/L3超高速緩存等等)可駐留在處理器102-1和總線101之間。在優(yōu)選實施例中,系統(tǒng)100可包括耦合到總線101的多個處理器102-1、……、102-P。多個輔助存儲器超高速緩存103-1、……、103-P也可駐留在多個處理器102-1、……、102-P和總線101之間(例如監(jiān)聽(look-through)結(jié)構(gòu)),或者可選擇地,至少一個輔助存儲器超高速緩存103-1可耦合到總線101(例如后備模式)。系統(tǒng)100可包括耦合到總線101的存儲器104,例如隨機存取存儲器(RAM)等等,用于存儲信息和將由多個處理器102-1、……、102-P執(zhí)行的指令。
存儲器104可存儲大型數(shù)據(jù)庫,例如用于將因特網(wǎng)域名轉(zhuǎn)換成因特網(wǎng)地址,用于將姓名或電話號碼轉(zhuǎn)換成網(wǎng)絡(luò)地址,用于提供和更新用戶簡檔數(shù)據(jù),用于提供和更新用戶當前數(shù)據(jù)等等。有利地,數(shù)據(jù)庫的大小和每秒轉(zhuǎn)換的數(shù)量可以非常大。例如,存儲器104可包括至少64GB的RAM,并可以裝備有500M(即500×106)記錄域名數(shù)據(jù)庫、500M記錄用戶數(shù)據(jù)庫、450M記錄電話號碼便攜性數(shù)據(jù)庫等等。
在示例性的64比特系統(tǒng)結(jié)構(gòu)上,例如包括耦合到至少64比特總線101和64比特存儲器104的至少一個64比特大型處理器102-1,可使用單個不可中斷操作將8字節(jié)指針值寫入8字節(jié)邊界上的存儲器地址(即,可被八整除的存儲器地址,或者例如8N)。通常,輔助存儲器超高速緩存103-1的存在可簡單地延遲8字節(jié)指針寫入存儲器104。例如,在一種實施例中,輔助存儲器超高速緩存103-1可以是操作在連續(xù)寫入(write-through)模式中的監(jiān)聽超高速緩存,所以單個的8字節(jié)存儲指令可在沒有中斷的情況下并在僅兩個系統(tǒng)時鐘周期內(nèi)將八字節(jié)的數(shù)據(jù)從處理器102-1移動到存儲器104。在另一種實施例中,輔助存儲器超高速緩存1031可以是操作在回寫模式中的監(jiān)聽超高速緩存,所以8字節(jié)指針可以首先被寫入到輔助存儲器超高速緩存103-1,它隨后可以將該8字節(jié)指針寫入存儲器104,例如,當將其中存儲有8字節(jié)指針的超高速緩存線寫入存儲器104時(即,例如當特定的超高速緩存線或整個輔助存儲器超高速緩存被“清洗”時)。
最后,從處理器102-1的角度來看,一旦將數(shù)據(jù)鎖存到處理器102-1的輸出引線上,在一個連續(xù)的不中斷的傳送中將所有八字節(jié)的數(shù)據(jù)寫入到存儲器104內(nèi),所述傳送可利用輔助存儲器超高速緩存103-1的作用而延遲,如果存在的話。從處理器102-2、……、102-P的角度來看,一旦將數(shù)據(jù)鎖存到處理器102-1的輸出引線上,則在一個連續(xù)的不中斷的傳送中將所有八字節(jié)的數(shù)據(jù)寫入到存儲器104內(nèi),這通過輔助存儲器超高速緩存103-1、……、103-P利用超高速緩存相干協(xié)議來實施,所述超高速緩存可延遲到存儲器104的寫入,如果存在的話。
然而,如果將8字節(jié)指針值被寫入到存儲器104內(nèi)錯誤對準的位置上,例如跨越8字節(jié)邊界的存儲器地址,則不能使用單個8字節(jié)存儲指令從存儲器102-1傳送所有的八字節(jié)數(shù)據(jù)。相反,處理器102-1可發(fā)出兩個單獨的不同存儲指令。例如,如果存儲器地址在8字節(jié)邊界之前的四字節(jié)開始(例如,8N-4),則第一存儲指令將4個最高有效字節(jié)傳送給存儲器104(例如,8N-4),而第二存儲指令將4個最低有效字節(jié)傳送給存儲器104(例如,8N)。重要地,在這兩個單獨的存儲指令之間,處理器102-1可被中斷,或者處理器102-1可放松總線101對另一系統(tǒng)組件(例如處理器102-P等等)的控制。因此,駐留在存儲器104內(nèi)的指針值將是無效的,直到處理器102-1可完成第二存儲指令。如果另一個組件開始到這個存儲器位置的單個不可中斷的存儲器讀取,則返回無效值作為估計可能有效的值。
類似地,可使用單個不可中斷的操作將新的4字節(jié)指針值寫入可被4整除的存儲器地址(例如4N)。注意在上面討論的例子中,可使用單個存儲指令將4字節(jié)指針值寫入8N-4存儲器位置。當然,如果將4字節(jié)指針值寫入跨越4字節(jié)邊界的位置,例如4N-2,則不能使用單個存儲指令將所有的四字節(jié)數(shù)據(jù)從處理器102-1中傳送,并且在存儲器104內(nèi)駐留的指針值在一定的時間周期內(nèi)可能是無效的。
系統(tǒng)100還可以包括耦合到總線101的只讀存儲器(ROM)106或者其它的靜態(tài)存儲設(shè)備,用于為處理器102-1存儲靜態(tài)信息和指令。諸如磁盤或光盤的存儲設(shè)備108可被耦合到總線101,用于存儲信息和指令。系統(tǒng)100還可以包括耦合到總線101的顯示器110(例如LCD監(jiān)視器)和輸入設(shè)備112(例如鍵盤、鼠標、跟蹤球等等)。系統(tǒng)100可以包括多個網(wǎng)絡(luò)接口114-1、……、114-O,其可以發(fā)送和接收承載代表各種類型信息的數(shù)字數(shù)據(jù)流的電、電磁或光信號。在一種實施例中,網(wǎng)絡(luò)接口114-1可耦合到總線101和局域網(wǎng)(LAN)122,而網(wǎng)絡(luò)接口114-O可耦合到總線101和廣域網(wǎng)(WAN)124。多個網(wǎng)絡(luò)接口114-1……、114-O可支持各種網(wǎng)絡(luò)協(xié)議,包括諸如吉比特以太網(wǎng)(例如IEEE標準802.3-2002,2002年出版)、光纖信道(例如ANSI標準X.3230-1994,1994年出版)等等。多個網(wǎng)絡(luò)計算機120-1、……、120-N可耦合到LAN 122和WAN124。在一種實施例中,LAN 122和WAN 124可以是物理上不同的網(wǎng)絡(luò),而在另一個實施例中,LAN 122和WAN 124可以經(jīng)由網(wǎng)絡(luò)網(wǎng)關(guān)或路由器(為了清楚而未圖示出)??蛇x擇地,LAN 122和WAN 124可以是相同的網(wǎng)絡(luò)。
如上面所指出的,系統(tǒng)100可提供DNS解析(resolution)服務(wù)。在DNS解析實施例中,通常可在網(wǎng)絡(luò)傳送和數(shù)據(jù)查找功能之間劃分DNS解析服務(wù)。例如,系統(tǒng)100可以是為在大型數(shù)據(jù)組上數(shù)據(jù)查找而優(yōu)化的后端查找引擎(LUE),而多個網(wǎng)絡(luò)計算機120-2、……、120-N可以是為網(wǎng)絡(luò)處理和傳輸而優(yōu)化的多個前端協(xié)議引擎(PE)。LUE可以是功能強大的多處理器服務(wù)器,在存儲器104內(nèi)存儲整個DNS記錄集以便于高速高吞吐量搜索和更新。在一種可選實施例中,DNS解析服務(wù)可利用一系列功能強大的多處理器服務(wù)器或LUE來提供,每個在存儲器內(nèi)存儲整個DNS記錄集的子集以便于高速高吞吐量搜索和更新。
相反地,多個PE可以是通用的低簡檔的基于PC的機器,運行高效的多任務(wù)操作系統(tǒng)(例如Red Hat Linux6.2),其最小化在LUE上的網(wǎng)絡(luò)處理傳送負載以最大化用于DNS解析的可用資源。PE可處理有線DNS協(xié)議的細微差異,響應(yīng)無效的DNS查詢,并通過LAN 122將有效的DNS查詢復(fù)用到LUE。在一種包括存儲DNS記錄子集的多個LUE的可選實施例中,PE可確定哪個LUE應(yīng)接收每個有效的DNS查詢,并復(fù)用有效的DNS查詢到合適的LUE。例如,可通過每秒將要處理的DNS查詢的數(shù)量和特定系統(tǒng)的性能特性來確定用于單個LUE的PE的數(shù)量。也可以使用其它的量度來確定合適的映射比和行為。
通常,可支持其它的大容量的基于查詢的實施例,例如包括電話號碼解析、SS7信令處理、地理位置確定、電話號碼到用戶映射、用戶位置和存在確定等等。
在一種實施例中,中央在線事務(wù)處理(OLTP)服務(wù)器140-1可耦合到WAN124,并接收來自多個信源的到數(shù)據(jù)庫142-1的添加、修改和刪除(即更新業(yè)務(wù))。OLTP服務(wù)器140-1可在WAN 124上向系統(tǒng)100發(fā)送更新,包括數(shù)據(jù)庫142-1的本地拷貝。OLTP服務(wù)器140-1可為了處理各種格式和協(xié)議的更新業(yè)務(wù)而被優(yōu)化,例如包括HyperText Transmission Protocol超文本傳輸協(xié)議(HTTP)、Registry Registrar Protocol注冊登記服務(wù)器協(xié)議(RRP)、Extensible ProvisioningProtocol可擴展供應(yīng)協(xié)議(EPP)、Service Management System業(yè)務(wù)管理系/800Mechanized Generic Interface機械化通用接口(MGI)和其它在線提供協(xié)議。只讀LUE的格局可部署在集線器和輪輻(spoke)結(jié)構(gòu)中,以提供結(jié)合來自O(shè)LTP服務(wù)器140-1的大容量的遞增更新的高速搜索能力。
在一種可選實施例中,數(shù)據(jù)可分布在多個OLTP服務(wù)器140-1、……、140-S上,其每個都耦合到WAN 124。OLTP服務(wù)器140-1、……、140-S可從各個信源接收到對其相應(yīng)的數(shù)據(jù)庫142-1、……、142-S(為了清楚未圖示出)的添加、修改和刪除(即更新業(yè)務(wù))。OLTP服務(wù)器140-1、……、140-S可在WAN 124上向系統(tǒng)100發(fā)送更新,這可包括數(shù)據(jù)庫142-1、……、142-S的拷貝和其它動態(tài)創(chuàng)建的數(shù)據(jù)等等。例如,在地理位置實施例中,OLTP服務(wù)器140-1、……、140-S可從多組遠程傳感器接收更新業(yè)務(wù)。在另一種可選實施例中,多個網(wǎng)絡(luò)計算機120-1、……、120-N也可在WAN 124或LAN 122上從各個信源接收添加、修改和刪除(即更新業(yè)務(wù))。在這個實施例中,多個網(wǎng)絡(luò)計算機120-1、……、120-N可向系統(tǒng)100發(fā)送更新以及查詢。
在一種實施例中,系統(tǒng)100可包括遠程數(shù)據(jù)庫(例如遠程數(shù)據(jù)庫210)。例如可在WAN 124上從OLTP服務(wù)器140-1接收新信息或更新業(yè)務(wù)。在一種實施例中,新信息可包括對遠程數(shù)據(jù)庫內(nèi)至少一個現(xiàn)有元素的修改。系統(tǒng)100可根據(jù)在網(wǎng)絡(luò)上接收到的新信息建立新的遠程數(shù)據(jù)庫元素,并且不限制對遠程數(shù)據(jù)庫的搜索訪問,使用單個不可中斷操作例如存儲指令將指向新元素的指針寫入遠程數(shù)據(jù)庫。在一種實施例中,處理器102-1可包括至少n字節(jié)的字長度,存儲器104可包括至少n字節(jié)的寬度,并且存儲指令可將n字節(jié)寫入位于n字節(jié)邊界上的遠程存儲器地址。在另一種實施例中,在將指針寫入遠程數(shù)據(jù)庫之后,系統(tǒng)100可物理地從存儲器104刪除與新元素對應(yīng)的現(xiàn)有元素。
在DNS解析實施例中,每個PE(例如多個網(wǎng)絡(luò)計算機120-1、……、120-N中的每個)可將在廣域網(wǎng)(例如WAN 124)上接收到的若干DNS查詢消息組合或復(fù)用成單個Request SuperPacket(請求超分組),并在局域網(wǎng)(例如LAN 122)上將該請求超分組發(fā)送給LUE(例如系統(tǒng)100)。LUE可將若干DNS查詢消息應(yīng)答組合或復(fù)用成單個Response SuperPacket(響應(yīng)超分組),并在局域網(wǎng)上將該響應(yīng)超分組發(fā)送給合適的PE。通常,請求或響應(yīng)超分組的最大長度可由物理網(wǎng)絡(luò)層(例如吉比特以太網(wǎng))的最大傳輸單元(MTU)來限制。例如,低于100字節(jié)和200字節(jié)的典型DNS查詢和應(yīng)答消息長度分別允許超過30個查詢被復(fù)用成單個請求超分組,以及超過15個應(yīng)答被復(fù)用成單個響應(yīng)超分組。然而,更少數(shù)量的查詢(例如20個查詢)可包括在單個請求超分組中,以避免在響應(yīng)上的MTU溢出(例如10個應(yīng)答)。對于更大的MTU長度,可相應(yīng)地增加復(fù)用的查詢和響應(yīng)的數(shù)量。
每個多任務(wù)PE可包括輸入線程和輸出線程,以便分別管理DNS查詢和應(yīng)答。例如,輸入線程可分解(un-marshal)來自廣域網(wǎng)上接收的輸入DNS查詢分組的DNS查詢組分,并將若干毫秒的查詢復(fù)用成單個請求超分組。隨后,輸入線程可在局域網(wǎng)上將該請求超分組發(fā)送給LUE。相反地,輸出線程可接收來自LUE的響應(yīng)超分組,解復(fù)用其中包含的應(yīng)答,并將各個字段安排(marshal)成有效的DNS應(yīng)答,隨后可以在廣域網(wǎng)上予以發(fā)送。通常,如上面所指出的,可以支持其它的大容量的基于查詢的實施例。
在一種實施例中,請求超分組也可以包括與每個DNS查詢有關(guān)的狀態(tài)信息,例如信源地址、協(xié)議類型等等。LUE可在響應(yīng)超分組內(nèi)包括狀態(tài)信息和相關(guān)的DNS應(yīng)答。隨后,每個PE可以使用從LUE發(fā)送的信息構(gòu)建并返回有效的DNS應(yīng)答消息。因此,每個PE可有利地作為無狀態(tài)機器操作,即可以根據(jù)在響應(yīng)超分組內(nèi)包含的信息構(gòu)成有效的DNS應(yīng)答。通常,LUE可以將響應(yīng)超分組返回給PE,從所述PE始發(fā)輸入超分組;然而,其它的變化顯然也是有可能的。
在一種可選實施例中,每個PE可維持與每個DNS查詢有關(guān)的狀態(tài)信息,并包括對請求超分組內(nèi)的狀態(tài)信息的參考或控制。LUE可在響應(yīng)超分組內(nèi)包括狀態(tài)信息參考和相關(guān)的DNS應(yīng)答。隨后,每個PE使用從LUE發(fā)送的狀態(tài)信息參考以及在其上保持的狀態(tài)信息來構(gòu)建并返回有效的DNS應(yīng)答消息。在這個實施例中,LUE可將響應(yīng)超分組返回給PE,從該PE始發(fā)輸入超分組。
圖2是根據(jù)本發(fā)明一種實施例的集線器和輪輻結(jié)構(gòu)的方框圖。通常,該系統(tǒng)可包括本地數(shù)據(jù)庫200(可包括在中央OLTP集線器140內(nèi))和通過諸如因特網(wǎng)或LAN 122的任意連接機制連接到本地數(shù)據(jù)庫200的一個或多個遠程數(shù)據(jù)庫210(可包括在LUE 100內(nèi))。這些數(shù)據(jù)庫可發(fā)送和接收更新數(shù)據(jù)。
參見圖3,在本發(fā)明的實施例中,本地數(shù)據(jù)庫200向遠程數(shù)據(jù)庫210發(fā)送F個發(fā)送文件(sendfile)300-1、……、300-F和初始化發(fā)送文件310,以更新遠程數(shù)據(jù)庫210。更新文件可單獨發(fā)送或成批被發(fā)送,例如多個發(fā)送文件300、一個發(fā)送文件300和一個初始化發(fā)送文件310、多個發(fā)送文件300和一個初始化發(fā)送文件310、單獨的發(fā)送文件300或者單獨的初始化發(fā)送文件310。
在本發(fā)明的一種實施例中,處理器104可從本地數(shù)據(jù)庫200接收包括更新數(shù)據(jù)的發(fā)送文件300和/或初始化發(fā)送文件310。系統(tǒng)150可通過通信接口118在遠程數(shù)據(jù)庫210上接收發(fā)送文件300和初始化發(fā)送文件310。處理器104隨后可比較發(fā)送文件300或初始化發(fā)送文件310內(nèi)的更新數(shù)據(jù)與遠程數(shù)據(jù)庫210內(nèi)的相應(yīng)數(shù)據(jù)。如果數(shù)據(jù)不同于遠程數(shù)據(jù)庫210內(nèi)的數(shù)據(jù),則處理器104可將發(fā)送文件300或初始化發(fā)送文件310提供給遠程數(shù)據(jù)庫210。因此,遠程數(shù)據(jù)庫210隨后可具有與本地數(shù)據(jù)庫200內(nèi)的更新數(shù)據(jù)匹配的已更新數(shù)據(jù)。
圖4圖示根據(jù)本發(fā)明一種實施例的發(fā)送文件300。文件300的字段可以包括諸如文件標識符400、文件生成時間402、文件內(nèi)事務(wù)處理數(shù)量N 404、文件的總長度406、檢驗和或任一這樣的錯誤檢查指示符408和事務(wù)處理410-1、……、410-N(包括事務(wù)處理標識符)。這些發(fā)送文件字段是用于說明本發(fā)明實施例的范疇的例子,而非限制其范疇。任何有用的字段都可以包括在發(fā)送文件300內(nèi)。
發(fā)送文件300包括在兩個時間點之間對本地數(shù)據(jù)庫200的改變。這些改變例如可包括新標識符的增加(即數(shù)據(jù)記錄的標識符)、現(xiàn)有標識符的刪除、與一標識符相關(guān)的一個或多個數(shù)據(jù)記錄的修改、標識符的重新命名、空操作等等。這些改變中的一個或多個可順序地出現(xiàn),或者可以是被調(diào)用的事務(wù)處理。發(fā)送文件300可包括這些事務(wù)處理的唯一標識符。這些事務(wù)處理可以以它們出現(xiàn)在本地數(shù)據(jù)庫200內(nèi)的順序被記錄在發(fā)送文件300內(nèi)。此外,對于包括一個以上改變的事務(wù)處理,這些改變可按照它們出現(xiàn)在本地數(shù)據(jù)庫200內(nèi)的順序被記錄在事務(wù)處理內(nèi)。
通常,可以任意順序?qū)⑹聞?wù)處理標識符分配給事務(wù)處理。即,事務(wù)處理標識符不需要隨著時間單調(diào)地增加。例如,兩個順序的事務(wù)處理可具有繼之以10002的10004的事務(wù)處理標識符。因此,可通過其在當前文件300-F內(nèi)的位置或其在前一文件300-(F-1)內(nèi)的位置來確定事務(wù)處理出現(xiàn)的順序。通常,事務(wù)處理不可以跨越相鄰的文件300,以便在一個發(fā)送文件應(yīng)用內(nèi)全部完成遠程數(shù)據(jù)庫更新。這防止由于網(wǎng)絡(luò)時延導致的更新中斷,所述網(wǎng)絡(luò)時延可導致遠程數(shù)據(jù)庫210上的錯誤數(shù)據(jù)。
圖5圖示根據(jù)本發(fā)明一種實施例的初始化發(fā)送文件310。初始化發(fā)送文件310的字段可包括諸如文件標識符500、文件生成時間502、文件內(nèi)的事務(wù)處理數(shù)量N 504、文件的總長度506、檢驗和或任一這樣的錯誤檢查指示符508和整個本地數(shù)據(jù)庫(數(shù)據(jù))的拷貝516。初始化發(fā)送文件310還可以包括字段510和字段512,其中字段510是在文件310生成之前生成的最后一個發(fā)送文件300的文件標識符400,而字段512是在初始化發(fā)送文件310生成之前提交給本地數(shù)據(jù)庫200的最后一個事務(wù)處理的標識符。在本地和遠程數(shù)據(jù)庫200、210內(nèi)的數(shù)據(jù)可分配給在數(shù)據(jù)庫200、210內(nèi)駐留的表格。數(shù)據(jù)庫200和210可支持任意數(shù)量的表格。所以,當數(shù)據(jù)庫具有表格時,初始化發(fā)送文件310可包括用于每個表格的字段,表示在該表格內(nèi)記錄的記錄數(shù)量。例如,域名數(shù)據(jù)庫可包括域表格和名稱服務(wù)器表格。因此,初始化發(fā)送文件可包括表示在域表格內(nèi)的記錄數(shù)量的字段和表示在名稱服務(wù)器表格內(nèi)的記錄數(shù)量的字段。該字段可指定諸如表格名稱、用于索引表格內(nèi)記錄的關(guān)鍵詞以及表格內(nèi)的記錄數(shù)量。此外,初始化發(fā)送文件310可包括表示初始化發(fā)送文件310的版本(通常是1.0)的字段。這些初始化發(fā)送文件字段是用于說明本發(fā)明實施例的范疇的例子,而非限制其范疇。任何有用的字段都可以包括在初始化發(fā)送文件310內(nèi)。
初始化發(fā)送文件310可包括諸如整個本地數(shù)據(jù)庫200的讀取一致的拷貝,如先前所描述的。初始化發(fā)送文件310可以在ts和tf之間的時間點t上變得與本地數(shù)據(jù)庫200一致,其中ts是初始化發(fā)送文件310的生成開始的時間,tf是生成完成的時間。如此,可在初始化發(fā)送文件310內(nèi)出現(xiàn)的唯一操作是“添加(add)”操作。即,當生成初始化發(fā)送文件310時,在時間t上整個本地數(shù)據(jù)庫200的拷貝可記錄在初始化發(fā)送文件310內(nèi)。因此,可執(zhí)行“添加”操作,以便在初始化發(fā)送文件310內(nèi)記錄本地數(shù)據(jù)庫200。可以以任意順序在初始化發(fā)送文件310內(nèi)記錄標識符??蛇x擇地,在存在外部標識符時,可在參考數(shù)據(jù)記錄之前記錄參考的數(shù)據(jù)記錄。
字段510和512的添加可以在生成初始化發(fā)送文件310的同時向初始化發(fā)送文件310提供可生成并提交給遠程數(shù)據(jù)庫210的發(fā)送文件300的一些知識。然而,發(fā)送文件300和初始化發(fā)送文件310的生成可對于一方的生成不取決于另一方的方面相互去耦合。這樣一種結(jié)構(gòu)和處理可防止低效的方法,其中發(fā)送文件生成和應(yīng)用可中止直到初始化發(fā)送文件生成可以被完成。通過在生成初始化發(fā)送文件310時繼續(xù)生成和應(yīng)用發(fā)送文件300,如在本發(fā)明的一種實施例中,可完成發(fā)送文件300的強大的錯誤檢查,并可以在遠程數(shù)據(jù)庫210上設(shè)置限制,例如唯一的限制或外部標識符限制。限制的設(shè)置可通過不允許違反遠程數(shù)據(jù)庫210的關(guān)系模型的事務(wù)處理來保護遠程數(shù)據(jù)庫210內(nèi)數(shù)據(jù)的完整性。例如,唯一的限制可防止同一關(guān)鍵字被一次以上存儲在數(shù)據(jù)庫210內(nèi)。
圖6是根據(jù)本發(fā)明一種實施例的發(fā)送文件和初始化發(fā)送文件生成的示意定時圖。在圖6中,在規(guī)定的時間間隔上生成發(fā)送文件300(sf-1至sf-21)。在一種可選擇的實施例中,可在不規(guī)則的時間間隔上生成發(fā)送文件300。通常,發(fā)送文件的生成并不使用整個時間間隔。例如,如果在5分鐘間隔上生成文件,則并不使用整個5分鐘來完成文件的生成。此外,如果在生成發(fā)送文件300的同時在本地數(shù)據(jù)庫200內(nèi)出現(xiàn)改變,則將在下一個發(fā)送文件300內(nèi)捕獲這些改變。例如,如果發(fā)送文件sf-4在12:05:00開始生成并在12:05:02完成,則在發(fā)送文件sf-5(例如300-5)內(nèi)捕獲在12:05:00和12:05:02之間出現(xiàn)的本地數(shù)據(jù)庫200的任意改變,其中發(fā)送文件捕獲從12:05:00到12:10:00的時間周期。
在圖6中圖示了發(fā)送文件300-5和300-19。這些文件除了其它字段之外還圖示了文件標識符601(sf-5、sf-19)、文件生成時間603和事務(wù)處理標識符605(例如10002)。注意事務(wù)處理標識符可以不被單調(diào)地排序。如前所述,事務(wù)處理標識符可以具有隨機值。然而,相關(guān)的事務(wù)處理本身以它們出現(xiàn)在本地數(shù)據(jù)庫200內(nèi)的順序被記錄在發(fā)送文件300內(nèi)。
因為初始化發(fā)送文件310生成和發(fā)送文件300生成可以被去耦合,所以可在任意時間上生成初始化發(fā)送文件310。例如,初始化發(fā)送文件310可在發(fā)送文件300的生成之前、期間或之后生成。圖6圖示在第四和第五發(fā)送文件(例如sf-4和sf-5)之間生成的初始化發(fā)送文件310。
在一種實施例中,初始化發(fā)送文件310除了其它字段之外還包括文件標識符610(isf-1)、在初始化發(fā)送文件生成之前生成的最后一個發(fā)送文件的文件標識符615和在初始化發(fā)送文件生成之前提交的最后一個事務(wù)處理的事務(wù)處理標識符620。在這個例子中,所生成的最后一個發(fā)送文件是發(fā)送文件sf-4,所提交的最后一個事務(wù)處理是事務(wù)處理10001。初始化發(fā)送文件310在12:07:29上開始生成611。在初始化發(fā)送文件310開始生成的同時,在發(fā)送文件300-5(sf-5)內(nèi)的前一半事務(wù)處理即事務(wù)處理10002、10005和10001已經(jīng)提交給本地數(shù)據(jù)庫2000。因此,初始化發(fā)送文件310可能已經(jīng)獲知這些事務(wù)處理,并可以捕獲在初始化發(fā)送文件310內(nèi)的這些事務(wù)處理。然而,初始化發(fā)送文件310可能不知道在初始化發(fā)送文件生成開始之后出現(xiàn)的隨后的事務(wù)處理10003和10004。
在可以生成初始化發(fā)送文件310的同時,開始于發(fā)送文件300-5的發(fā)送文件可繼續(xù)在規(guī)則的時間間隔上被生成。這些文件可被發(fā)送給遠程數(shù)據(jù)庫210并被應(yīng)用。
初始化發(fā)送文件310可以在第18和第19發(fā)送文件300(sf-18和sf-19)的生成中間的1:15:29上完成生成,并且可以不影響第19發(fā)送文件300-19的生成。
在遠程數(shù)據(jù)庫210上接收和裝載初始化發(fā)送文件310之后,遠程數(shù)據(jù)庫210可以不考慮在初始化發(fā)送文件310生成之前生成的發(fā)送文件。這可能是由于例如初始化發(fā)送文件310包括在先前的發(fā)送文件300內(nèi)記錄的對本地數(shù)據(jù)庫200的所有改變。在這個例子中,遠程數(shù)據(jù)庫210可能不需要考慮第一至第四發(fā)送文件(sf-1至sf-4)。在這些發(fā)送文件sf-1至sf-4內(nèi)記錄的改變也可以記錄在初始化發(fā)送文件310內(nèi)。這些先前的發(fā)送文件(sf-1至sf-4)可以被刪除,或者可選擇地被歸檔。類似地,遠程數(shù)據(jù)庫210可以不考慮在初始化發(fā)送文件310的生成之前提交的在后向生成的發(fā)送文件300內(nèi)包括的事務(wù)處理。當生成初始化發(fā)送文件310時,初始化發(fā)送文件310可包括這些事務(wù)處理。例如,因為這些事務(wù)處理,遠程數(shù)據(jù)庫210可以不需要考慮發(fā)送文件sf-5的前三個事務(wù)處理10002、10005和10001。在發(fā)送文件sf-5內(nèi)記錄的這些事務(wù)處理也可以被記錄在初始化發(fā)送文件310內(nèi)。這些提交的事務(wù)處理可以被刪除,或者可選擇地被歸檔。
圖7是本發(fā)明一種實施例的流程圖,其中可生成本地數(shù)據(jù)庫的更新文件。系統(tǒng)可根據(jù)本地數(shù)據(jù)庫的遞增改變來生成(705)多個定期更新。每個更新可包括一個或多個事務(wù)處理。該系統(tǒng)隨后可將這些定期更新發(fā)送(710)給遠程數(shù)據(jù)庫。在生成定期更新的同時,系統(tǒng)可以在開始時間上生成(715)初始化更新。初始化更新可包括整個本地數(shù)據(jù)庫的版本。系統(tǒng)可確定(720)在開始時間之前生成的最后一個定期更新和在開始時間之前提交的最后一個事務(wù)處理。隨后,系統(tǒng)可將初始化更新發(fā)送(725)給遠程數(shù)據(jù)庫。初始化更新可包括與所生成的最后一個定期更新有關(guān)的更新標識符和與提交的最后一個事務(wù)處理有關(guān)的事務(wù)處理標識符。
例如,OLTP 140可在某一規(guī)則或不規(guī)則的時間間隔上生成(705)發(fā)送文件300。OLTP 140可以將發(fā)送文件300發(fā)送(710)給遠程數(shù)據(jù)庫210。在生成發(fā)送文件300的同時,OLTP 140可以在開始時間611上開始生成(715)初始化發(fā)送文件310。初始化發(fā)送文件310可以包括整個本地數(shù)據(jù)庫200的拷貝。OLTP 140隨后可以確定在用于生成初始化發(fā)送文件310的開始時間611之前生成的最后一個發(fā)送文件300和在用于生成初始化發(fā)送文件301的開始時間611之前提交的最后一個事務(wù)處理。OLTP 140隨后可以將初始化發(fā)送文件310發(fā)送(725)給遠程數(shù)據(jù)庫210。初始化發(fā)送文件310可以包括與所生成的最后一個發(fā)送文件300相關(guān)的發(fā)送文件標識符615和與所提交的最后一個事務(wù)處理有關(guān)的事務(wù)處理標識符620。
圖8是本發(fā)明的一種實施例的流程圖,其中遠程數(shù)據(jù)庫可以從本地數(shù)據(jù)庫接收更新文件。系統(tǒng)可以接收(805)多個定期更新。每個更新可包括一個或多個事務(wù)處理。定期更新可以被單獨地或成批地接收。系統(tǒng)可以在某個時間上接收(810)初始化更新。初始化更新可以包括整個本地數(shù)據(jù)庫的版本。系統(tǒng)可以從初始化更新中讀取(815)最后一個定期更新標識符和最后一個事務(wù)處理標識符。系統(tǒng)隨后可以確定(820)與更新標識符相關(guān)的最后一個定期更新和與事務(wù)處理標識符有關(guān)的最后一個事務(wù)處理。定期更新和事務(wù)處理可以是在初始化更新生成之前分別生成和提交的最后一個。系統(tǒng)可以將在相應(yīng)定期更新內(nèi)剩余的未提交事務(wù)處理應(yīng)用(825)到遠程數(shù)據(jù)庫。系統(tǒng)隨后可以將在最后一個定期更新之后生成的剩余定期更新應(yīng)用(830)到遠程數(shù)據(jù)庫。應(yīng)用初始化更新有利地補償任何先前丟失的定期更新。
例如,LUE 100可在某個規(guī)則或不規(guī)則時間間隔上接收(805)發(fā)送文件300。發(fā)送文件300可以單獨或成批地被接收。LUE 100可以在某個時間上接收(810)初始化發(fā)送文件310。LUE 100可以從初始化發(fā)送文件310中讀取(815)發(fā)送文件標識符615和事務(wù)處理標識符620。LUE 100隨后可以確定(820)與發(fā)送文件標識符615相關(guān)的發(fā)送文件300和與事務(wù)處理標識符620相關(guān)的事務(wù)處理605。發(fā)送文件和事務(wù)處理可以是在初始化發(fā)送文件310生成之前所分別生成和提交的最后一個發(fā)送文件和事務(wù)處理。LUE 100可以將在相應(yīng)發(fā)送文件300內(nèi)的剩余未提交事務(wù)處理605應(yīng)用(825)到遠程數(shù)據(jù)庫210。LUE 100隨后可以將在最后一個發(fā)送文件sf-4之后的剩余發(fā)送文件300應(yīng)用(830)到遠程數(shù)據(jù)庫210。
在一種可選實施例中,例如,LUE 100可以丟棄或歸檔尚未應(yīng)用于遠程數(shù)據(jù)庫210和/或具有在初始化發(fā)送文件生成時間611之前的生成時間603的發(fā)送文件300。丟棄或歸檔的發(fā)送文件300可以包括與發(fā)送文件標識符615相關(guān)的發(fā)送文件sf-4。
可以理解在應(yīng)用初始化發(fā)送文件310之后,因為遠程數(shù)據(jù)庫210可能變得與初始化發(fā)送文件310讀取一致,所以可能已經(jīng)應(yīng)用于遠程數(shù)據(jù)庫210的任意隨后的發(fā)送文件300可能被丟失。因此,可重新應(yīng)用這些隨后的發(fā)送文件300。
在本發(fā)明的一種實施例中,在沒有確認即在沒有ACK/NACK信號以指示文件被成功接收的情況下,發(fā)送文件300和初始化發(fā)送文件310可以從本地數(shù)據(jù)庫200被發(fā)送給遠程數(shù)據(jù)庫210。這有利地降低了ACK/NACK信號可能產(chǎn)生的開銷。
在一種可選實施例中,ACK/NACK信號可以從遠程數(shù)據(jù)庫210被發(fā)送,以表示文件的成功接收。在這個實施例中,可以在不可靠通信的系統(tǒng)內(nèi)發(fā)送ACK/NACK信號。
圖9是本發(fā)明另一種實施例的流程圖,其中系統(tǒng)可驗證從本地數(shù)據(jù)庫發(fā)送的并在遠程數(shù)據(jù)庫上接收的更新文件。在此,系統(tǒng)可發(fā)送(905)多個定期更新。每個更新可包括一個或多個事務(wù)處理。定期更新可以被單獨地或成批地發(fā)送。系統(tǒng)可以在某個時間上發(fā)送(910)初始化更新,并將初始化更新應(yīng)用于遠程數(shù)據(jù)庫。初始化更新可以包括整個本地數(shù)據(jù)庫的版本。系統(tǒng)可以通過比較這些數(shù)據(jù)庫首先識別(915)在本地和遠程數(shù)據(jù)庫之間的差異。系統(tǒng)可以確定(920)這些差異是有效的還是錯誤的。根據(jù)本發(fā)明的一種實施例,系統(tǒng)隨后可以將這些定期更新應(yīng)用(925)于遠程數(shù)據(jù)庫。因為從本地數(shù)據(jù)庫接收更新,這個實施例有利地可以保證在遠程數(shù)據(jù)庫內(nèi)沒有錯誤。
例如,OLTP 140可以在某個規(guī)則或不規(guī)則的時間間隔上將發(fā)送文件300發(fā)送(905)給遠程數(shù)據(jù)庫210。發(fā)送文件300可以單獨地發(fā)送或者成批地被發(fā)送。OLTP 140可以在某個時間上將初始化發(fā)送文件310發(fā)送(910)給LUE 100,并且LUE 100可以將初始化發(fā)送文件310應(yīng)用于遠程數(shù)據(jù)庫210。OLTP 140可以比較本地數(shù)據(jù)庫200與遠程數(shù)據(jù)庫210,并識別(915)它們之間的差異。OLTP 140隨后可以確定(920)這些差異是有效的還是錯誤的。根據(jù)本發(fā)明的一種實施例,OLTP 140隨后可以通知LUE 100將發(fā)送文件300應(yīng)用(925)于遠程數(shù)據(jù)庫210。LUE 100隨后可以將發(fā)送文件300應(yīng)用于遠程數(shù)據(jù)庫210。
在一種可選實施例中,系統(tǒng)可以在識別和驗證差異之前應(yīng)用發(fā)送文件和初始化發(fā)送文件。可選擇地,系統(tǒng)也可以在識別和驗證差異之后應(yīng)用發(fā)送文件和初始化發(fā)送文件。
可以理解為了將所發(fā)送的數(shù)據(jù)應(yīng)用于目的地,可以對通過網(wǎng)絡(luò)從信源發(fā)送到目的地的任何數(shù)據(jù)執(zhí)行驗證處理。
圖10A是根據(jù)本發(fā)明的發(fā)送文件和初始化發(fā)送文件驗證的實施例的流程圖。在發(fā)送多個定期更新和初始化更新給遠程數(shù)據(jù)庫之后,系統(tǒng)可以驗證這些更新。每個更新可以包括在本地數(shù)據(jù)庫上執(zhí)行的一個或多個事務(wù)處理。每個事務(wù)處理可以包括一個或多個事件。事件是針對數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的數(shù)據(jù)庫動作或事件,例如添加、修改和刪除等等。
首先,系統(tǒng)可以比較(1000)遠程數(shù)據(jù)庫內(nèi)的記錄與本地數(shù)據(jù)庫內(nèi)的相應(yīng)記錄。系統(tǒng)可以生成(1005)描述遠程和本地數(shù)據(jù)庫記錄之間差異的例外,其中可以為每個差異生成一個例外。差異可以是同一記錄的不同版本之間至少一個數(shù)據(jù)值中的任何不同。例如,本地數(shù)據(jù)庫內(nèi)的數(shù)據(jù)記錄可以是(12345,xyz.com,123.234.345)。假定是相同的遠程數(shù)據(jù)庫內(nèi)的相應(yīng)數(shù)據(jù)記錄可以是(12345,abc.com,123.234.345)。因此,在該記錄的第二數(shù)據(jù)值上存在差異。因而,本發(fā)明的一種實施例可以生成描述此差異的例外。例外可以通過簡單地表示存在差異、通過指定差異的位置、通過描述差異中兩個數(shù)據(jù)值之間的不同等來描述差異。本地數(shù)據(jù)庫內(nèi)的數(shù)據(jù)記錄對應(yīng)于遠程數(shù)據(jù)庫內(nèi)的數(shù)據(jù)記錄(反之亦然),如果假定這兩個記錄包含相同數(shù)據(jù)的話。
可以理解差異可以指在一個記錄內(nèi)的一個或多個數(shù)據(jù)值之間或者整個記錄的差異。
系統(tǒng)可以相關(guān)(1010)例外標識符與每個例外,其中例外標識符可以與記錄的標識符相關(guān)。例如,數(shù)據(jù)記錄(12345,xyz.com,123.234.345)可以具有標識符d10。因此,例外標識符也可以是d10。每個例外可以分類為屬于多種例外(或差異)類型中的任一類型。例外列表可以被形成以包括將該例外劃分在其中的例外類型和例外標識符。隨后將詳細地描述例外列表和不同的例外類型。系統(tǒng)還可以相關(guān)(1015)事件標識符與更新中的每個事件,其中事件標識符可以與記錄的標識符相關(guān)。例如,數(shù)據(jù)記錄(12345,xyz.com,123.234.345)可包括標識符d10。因此,事件標識符也可以是d10。更新中的每個事件可從事件歷史中被發(fā)現(xiàn)。事件歷史可以是在一個時間周期上對本地數(shù)據(jù)庫內(nèi)的記錄執(zhí)行的事件的列表等。隨后將詳細地描述事件歷史。
系統(tǒng)隨后可以確定(1020)記錄的更新是否有效。圖10B是驗證確定的實施例的流程圖。此確定可以如下執(zhí)行??梢员容^(1022)每個事件與每個例外。如果通過事件證明(1024)每個例外合理,則可以將更新指定(1026)為有效的,并可以將更新應(yīng)用于遠程數(shù)據(jù)庫。反之,如果通過事件未證明(1024)每個例外合理,則可以將更新指定(1028)為無效的,并可以將例外記錄為錯誤。當事件標識符對應(yīng)于例外標識符并且相關(guān)事件對應(yīng)于與例外類型相關(guān)的事件的有效序列時,可以證明例外合理。隨后將詳細地描述有效的序列。如果例外被證明合理,則系統(tǒng)可以從例外列表中除去該例外標識符。被證明合理的例外可以表示差異是有效的差異,例如,遠程數(shù)據(jù)庫尚未接收到更新,但是當接收到更新時將實際上匹配本地數(shù)據(jù)庫。
在驗證期間,系統(tǒng)可以識別出定期和初始化更新中的潛在錯誤或故障。系統(tǒng)可確保這些更新可以是結(jié)構(gòu)和語義上正確的,這些更新可以在不生成例外或否則討厭地暫停的情況下成功地被應(yīng)用,本地和遠程數(shù)據(jù)庫之間的比較可準確地檢測錯誤,并且高簡檔(high-profile)數(shù)據(jù)不被意外地刪除。系統(tǒng)可確保定期和初始化更新可以被成功地應(yīng)用于遠程數(shù)據(jù)庫。
通過試圖在驗證過程中將更新應(yīng)用于遠程數(shù)據(jù)庫,可以有利地發(fā)現(xiàn)許多錯誤。例如,在應(yīng)用試圖期間可以發(fā)現(xiàn)以數(shù)據(jù)為中心的錯誤、目標已經(jīng)存在于遠程數(shù)據(jù)庫內(nèi)的警告或存在外部標識符違背的警告。因而,在執(zhí)行本發(fā)明的一種實施例的驗證處理之后,系統(tǒng)可以試圖將這些更新應(yīng)用于遠程數(shù)據(jù)庫。該試圖可能失敗,這可以表示在更新中存在使更新無效的附加錯誤。因此,不再進一步試圖將這些更新應(yīng)用于遠程數(shù)據(jù)庫。
在一種可選的實施例中,可以試圖在執(zhí)行驗證之前應(yīng)用至少一個更新。如果該試圖失敗,則可以跳過該驗證,并丟棄該更新。另一方面,如果該試圖成功,則可以執(zhí)行驗證,并保持有效的更新,和對于差異記錄無效的更新。
在一種示例的實施例中,OLTP 140可以驗證發(fā)送文件300和初始化發(fā)送文件310,以確??沙晒Φ貙l(fā)送文件300和初始化發(fā)送文件310應(yīng)用于遠程數(shù)據(jù)庫210。
在可選實施例中,網(wǎng)絡(luò)計算機121、LUE 100或者任何現(xiàn)有系統(tǒng)的組合可以執(zhí)行驗證。
參見圖10A,OLTP 140可以比較本地數(shù)據(jù)庫200和遠程數(shù)據(jù)庫210,以確定它們之間的任何例外(或差異)。例外可以包括三種類型數(shù)據(jù)可能在遠程數(shù)據(jù)庫210內(nèi)而不在本地數(shù)據(jù)庫200內(nèi);數(shù)據(jù)可能在本地數(shù)據(jù)庫200內(nèi)而不在遠程數(shù)據(jù)庫210內(nèi);或者,相應(yīng)的數(shù)據(jù)可能在本地數(shù)據(jù)庫200和遠程數(shù)據(jù)庫210內(nèi),但是數(shù)據(jù)可能不同。當然,相應(yīng)的數(shù)據(jù)可以在本地數(shù)據(jù)庫200和遠程數(shù)據(jù)庫210內(nèi),并且數(shù)據(jù)可以是相同的,在這種情況下,可以將數(shù)據(jù)視為有效的,因而不需要OLTP 140的進一步處理。
可以理解差異可以指記錄內(nèi)的一個或多個數(shù)據(jù)值或者整個記錄。
因此,OLTP 140可以比較(1000)本地數(shù)據(jù)庫200和遠程數(shù)據(jù)庫210內(nèi)的相應(yīng)記錄。OLTP 140可以生成(1005)描述遠程數(shù)據(jù)庫210內(nèi)的記錄和本地數(shù)據(jù)庫200內(nèi)的記錄之間差異的例外,其中可以為每個差異生成例外。OLTP140可以相關(guān)(1010)例外標識符與每個例外,其中例外標識符可以與記錄的標識符相關(guān)。例外列表可以被形成以包括例外類型和用于屬于該例外類型的例外的例外標識符。在一種實施例中,如果例外屬于第一例外類型,該例外可以被指定為“列表1”例外(或差異),如果該例外屬于第二例外類型,該例外可以被指定為“列表2”例外,或者如果該例外屬于第三例外類型,該例外可以被指定為“列表3”例外。圖11圖示一個示例性的例外列表1140。
可以理解例外標識符出現(xiàn)在例外列表上可能不隱含發(fā)送文件300或初始化發(fā)送文件310是壞的,因為例如由于在對本地數(shù)據(jù)庫200的改變和應(yīng)用于遠程數(shù)據(jù)庫310的更新之間的時延,導致所有三種類型的例外可能合理地出現(xiàn)。這種時延可能是由于諸如網(wǎng)絡(luò)擁塞而導致的。因此,驗證可以提供從錯誤數(shù)據(jù)中去除合理情況的機制。
對于初始化發(fā)送文件310,OLTP 140可以通過對兩個數(shù)據(jù)庫200和210執(zhí)行雙向全表掃描來比較本地數(shù)據(jù)庫200和遠程數(shù)據(jù)庫210。即,可以比較本地數(shù)據(jù)庫200內(nèi)的所有數(shù)據(jù)和遠程數(shù)據(jù)庫210內(nèi)的所有數(shù)據(jù)。隨后,可以比較遠程數(shù)據(jù)庫210中的所有數(shù)據(jù)和本地數(shù)據(jù)庫200中的所有數(shù)據(jù)。這有利地提供了數(shù)據(jù)庫200和210的窮盡比較以發(fā)現(xiàn)所有的差異。
對于發(fā)送文件300來說,OLTP 140可以僅比較在發(fā)送文件300內(nèi)記錄的本地數(shù)據(jù)庫200和遠程數(shù)據(jù)庫210內(nèi)的數(shù)據(jù)記錄。這有利地提供快速查詢以發(fā)現(xiàn)目標差異。
可選擇地,可執(zhí)行在初始化發(fā)送文件310和/或發(fā)送文件300內(nèi)數(shù)據(jù)的隨機取樣。OLTP 140隨后可以比較本地數(shù)據(jù)庫200和遠程數(shù)據(jù)庫210內(nèi)的隨機取樣的數(shù)據(jù)。
例外列表1140可以對應(yīng)于丟失事件,例如與遠程數(shù)據(jù)庫210不一致的對本地數(shù)據(jù)庫200的添加(add)、修改(mod)和刪除(del)。所以,為了識別出這些候選事件,OLTP 140可以檢查提交給本地數(shù)據(jù)庫200的最近事務(wù)處理。通常,對于所提交的每個事務(wù)處理,可以在本地數(shù)據(jù)庫200內(nèi)存儲的記錄表內(nèi)設(shè)置一個表目。此表目可以包括被改變的記錄的標識符、改變此記錄的事務(wù)處理(或事件)(例如,add、mod和/或del事件)、表示事務(wù)處理順序的記錄順序號等等。
在圖11中圖示了示例性的記錄表1100。在這個例子中,發(fā)送文件300包括在記錄表1100內(nèi)所圖示的事務(wù)處理1108-1114。第一表目1101表示在第一事務(wù)處理1108內(nèi)將數(shù)據(jù)(名稱服務(wù)器)n1和n2添加給與標識符d1相關(guān)的數(shù)據(jù)(域)。因此,標識符是d1,事件是“add”,并且記錄順序號是11526。類似地,第二表目1102表示在第二事務(wù)處理1109內(nèi)將數(shù)據(jù)n8和n9添加給與標識符d2相關(guān)的數(shù)據(jù)。第三表目1103表示在第三事務(wù)處理1110內(nèi)刪除與標識符d3相關(guān)的數(shù)據(jù)。第四表目1104表示在第四事務(wù)處理1111中修改與標識符d1相關(guān)的數(shù)據(jù)以添加數(shù)據(jù)n5。對于第五事務(wù)處理1112,第五表目1105表示將數(shù)據(jù)n6和n7添加給與標識符d3相關(guān)的數(shù)據(jù)。對于第六事務(wù)處理1113,第六表目1106表示修改與標識符d4相關(guān)的數(shù)據(jù)以除去數(shù)據(jù)n3。在第R事務(wù)處理1114中的第R表目1107表示刪除與標識符d5相關(guān)的數(shù)據(jù)。
因此,如圖10A所示,OLTP 140可以相關(guān)(1015)事件標識符與更新中的每個事件,其中事件標識符可以與記錄的標識符相關(guān)??梢詮氖录v史中發(fā)現(xiàn)更新中的每個事件??梢詮挠涗洷?100生成通過事件標識符索引和排序的事件歷史。在圖11中圖示一個示例性的事件歷史1120。在此,記錄表110內(nèi)的第一和第四表目1101和1104表示對與標識符d1相關(guān)的數(shù)據(jù)的改變。因而,事件歷史1120包括d1標識符1121和對與標識符d1相關(guān)的數(shù)據(jù)執(zhí)行的兩個事件1126,“add”之后跟隨著“mod”。第二表目1102表示對與標識符d2相關(guān)的數(shù)據(jù)的修改。因而,事件歷史1120包括d2標識符1122和“add”事件1127。事件歷史1120包括d3標識符1123和兩個事件1128,“del”后跟隨著“mod”,表示第三和第五表目1103和1105,其包括對與標識符d3相關(guān)的數(shù)據(jù)的改變。第六表目1106表示對與標識符d4相關(guān)的數(shù)據(jù)的改變。因此,事件歷史1120包括d4標識符1124和“mod”事件1129。第R表目1107表示對與標識符d5相關(guān)的數(shù)據(jù)的改變,并且事件歷史1120包括d5標識符和“del”事件1130。標識符1121-1125以d1至d5進行排序。
再次參見圖10A,OLTP 140可以確定(1020)更新是否有效。例如,可以根據(jù)圖10B的實施例來執(zhí)行此確定。首先,OLTP 140可以比較(1022)事件標識符1121-1125與例外標識符1140,以確定哪一些標識符對應(yīng)。例如,在圖11中,事件歷史1120中的d1事件標識符1121對應(yīng)于例外列表1140的“列表2”中的d1例外標識符。在找到相應(yīng)的事件和例外之后,OLTP 140可以確定(1024)該事件是否證明該例外合理??梢匀缦逻M行證明合理性。對于事件歷史1120內(nèi)的每個事件標識符1121-1125,OLTP 140可以確定事件歷史1120內(nèi)的每個事件1126-1130的序列是否是有效的。這可以例如通過檢查例外列表1140以確定每個例外標識符屬于哪個例外類型、確定什么應(yīng)當是用于該例外類型的有效事件序列、以及隨后在事件歷史1120中搜索相應(yīng)的事件標識符和該事件標識符的事件序列來進行。下面將具體描述用于每個例外類型的有效序列。如果事件歷史1120中的事件序列1126-1130匹配有效序列,則相應(yīng)的事件標識符1121-1125具有有效序列。因此,可以證明與例外標識符相關(guān)的例外。而且,包括該事件標識符的相應(yīng)事務(wù)處理1108-1114是有效的,而非錯誤的。在這種情況下,OLTP 140可以從例外列表1140中刪除該例外標識符。
用于“列表1”例外類型的有效事件序列可以是(mod)*(del)。這個序列可以包括零個或多個“mod”事件序列,其后跟隨著“del”事件,其隨后是任意事件?!傲斜?”例外類型可以對應(yīng)于可存在于遠程數(shù)據(jù)庫210內(nèi)但是不存在于本地數(shù)據(jù)庫200內(nèi)的數(shù)據(jù)。在這種情況下,可能最近已經(jīng)從本地數(shù)據(jù)庫200中刪除數(shù)據(jù),并且事務(wù)處理尚未寫入到發(fā)送文件300。因此,發(fā)送文件300可能尚未應(yīng)用于遠程數(shù)據(jù)庫210。因此,數(shù)據(jù)可能依然存在于遠程數(shù)據(jù)庫210內(nèi)。這可以被視為合理的差異,因為在某個點上期望生成發(fā)送文件300并將其應(yīng)用于遠程數(shù)據(jù)庫210。因此,如果在用于例外列表1140的列表1內(nèi)的例外標識符的事件歷史1120中發(fā)現(xiàn)任一這樣的序列1126-1130,則可以將相應(yīng)的事務(wù)處理視為有效的。
例如,在圖11中,如記錄表1100的第R條目1114所示和在事件歷史1120中索引的,已經(jīng)從本地數(shù)據(jù)庫200中刪除d5標識符1125及其相關(guān)數(shù)據(jù)。在驗證時,已經(jīng)從本地數(shù)據(jù)庫200刪除d5,但是尚未從遠程數(shù)據(jù)庫210刪除。所以,例外列表1140包括列表1中的標識符d5。根據(jù)事件歷史1120,與d5標識符1125相關(guān)的事件1130是“del”。OLTP 140可以比較“列表1”例外類型的有效序列即(mod)*(del)與事件歷史1120內(nèi)的d5事件1130。因為“列表1”有效序列與事件1130匹配,可以將與標識符d5相關(guān)的刪除事務(wù)處理1114視為合理的而非錯誤的。因此,可以從例外列表1140中刪除標識符d5。
用于“列表2”例外類型的有效事件序列可以是(add)。這個序列可以包括“add”事件,其后跟隨著任意事件?!傲斜?”例外類型可對應(yīng)于在本地數(shù)據(jù)庫200內(nèi)存在但是在遠程數(shù)據(jù)庫210內(nèi)不存在的數(shù)據(jù)。在這種情況下,數(shù)據(jù)可能最近已經(jīng)被添加給本地數(shù)據(jù)庫200,而事務(wù)處理尚未寫入發(fā)送文件300。因此,發(fā)送文件300可能尚未應(yīng)用于遠程數(shù)據(jù)庫210。所以,此數(shù)據(jù)可能不存在于遠程數(shù)據(jù)庫210內(nèi)。這也可以被視為合理差異,因為在某個點上預(yù)期生成發(fā)送文件300并將其應(yīng)用于遠程數(shù)據(jù)庫210。因此,如果在用于例外列表1140的列表2內(nèi)的例外標識符的事件歷史1120中發(fā)現(xiàn)任一這樣的序列1126-1130,則可以將相應(yīng)的事務(wù)處理視為有效的。
再次參見圖11,d1和d2標識符1121和1123可以與例如初始添加給本地數(shù)據(jù)庫200的數(shù)據(jù)相關(guān)。因為它們的事件序列1126和1127開始于“add”事件,所以d1和d2標識符1121和1123匹配用于“列表2”例外類型的有效序列。因此,可以將包括這些標識符的事務(wù)處理1108和1109視為有效的,并從例外列表1140中除去標識符d1和d2。應(yīng)當指出d3標識符1123在其序列1128中也包括“add”事件。然而,“add”事件并非序列1128中的第一事件。因此,序列1128并不具有作為“列表2”類型的資格。此外,因為在例外列表1140的列表2內(nèi)未指定d3,所以O(shè)LTP 140可以不為列表2的有效序列而檢查d3。
用于“列表3”例外類型的有效事件序列可以是(del)(add)或(mod)。這些序列可以包括其后跟隨著“add”事件(其后跟隨著任意事件)的“del”事件或其后跟隨著任意事件的“mod”事件?!傲斜?”例外類型可對應(yīng)于在兩個數(shù)據(jù)庫200和210內(nèi)都存在但卻不同的數(shù)據(jù)。在這種情況下,數(shù)據(jù)可能最近已經(jīng)在本地數(shù)據(jù)庫200內(nèi)被修改,并且事務(wù)處理尚未寫入發(fā)送文件300。因此,發(fā)送文件300可能尚未被應(yīng)用于遠程數(shù)據(jù)庫210。因此,與標識符相關(guān)的數(shù)據(jù)可能尚未在遠程數(shù)據(jù)庫210內(nèi)被修改。再次,可以將這視為合理差異,因為在某一點上預(yù)期將生成發(fā)送文件300并將其應(yīng)用于遠程數(shù)據(jù)庫210。因此,如果在用于例外列表1140的列表3的例外標識符的事件歷史1120內(nèi)發(fā)現(xiàn)任一這樣的序列1126-1130,則可以將相應(yīng)的事務(wù)處理視為有效的。
例如,在圖11中,d3和d4標識符1123和1124可以與在本地數(shù)據(jù)庫200內(nèi)被修改的數(shù)據(jù)相關(guān)。在d3標識符1123的情況下,初始刪除d3標識符1123及其數(shù)據(jù),并且然后使用新數(shù)據(jù)添加,以便其事件序列1128可以包括其后跟隨著“add”的“del”。在d4標識符1124的情況下,修改d4數(shù)據(jù)以除去數(shù)據(jù),以便其事件序列1129可以包括“mod”。因為這些事件序列1128和1129匹配用于“列表3”例外類型的有效序列,所以可以將它們的相應(yīng)事務(wù)處理1110、1112和1113視為有效的,并從列表列表1140中刪除標識符d3和d4。
參見圖10B,如果已經(jīng)通過事件證明(1024)利用例外列表1140內(nèi)的其標識符表示的所有例外是合理的,即如果例外列表1140是空的,則OLTP 140可以將發(fā)送文件300或初始化發(fā)送文件310指定(1026)為有效的,并通知LUE100將發(fā)送文件300或初始化發(fā)送文件310應(yīng)用于遠程數(shù)據(jù)庫210。隨后,LUE100可以將發(fā)送文件300或初始化發(fā)送文件310應(yīng)用于遠程數(shù)據(jù)庫210。
相反地,如果尚未通過事件證明(1024)所有的例外是合理的,即如果例外列表1140不為空,則其余的例外可以表示發(fā)送文件300或初始化發(fā)送文件310內(nèi)的錯誤。因此,OLTP 140可以將發(fā)送文件300或初始化發(fā)送文件310指定(1028)為無效的,并在錯誤文件內(nèi)記錄此錯誤。
在可選實施例中,例如,如果發(fā)送文件300或初始化發(fā)送文件310被指定為無效的,則在預(yù)定的時間周期之后,OLTP 140可以對無效的發(fā)送文件300或初始化發(fā)送文件310重復(fù)驗證處理以確保差異的確是錯誤的。這個預(yù)定的延遲允許網(wǎng)絡(luò)更多的時間來發(fā)送任意緩慢的發(fā)送文件300和310,并允許數(shù)據(jù)庫200和210具有更多的時間變得讀取一致。
在本發(fā)明的一種實施例中,遠程數(shù)據(jù)庫210內(nèi)的事件可以將本地數(shù)據(jù)庫200內(nèi)的數(shù)據(jù)“滯后”很長的時間周期。因此,為了比較數(shù)據(jù)庫200和210并檢測錯誤,可以使數(shù)據(jù)庫200和210在同一時間點上讀取一致,以便它們是彼此準確的拷貝。通常,遠程數(shù)據(jù)庫210可以被前卷到本地數(shù)據(jù)庫200,其中可以使遠程數(shù)據(jù)庫210內(nèi)的數(shù)據(jù)與本地數(shù)據(jù)庫200內(nèi)的數(shù)據(jù)基本相同。
因此,為了加速驗證,可以將任意當前生成的初始化發(fā)送文件310和隨后的發(fā)送文件300在開始驗證之前應(yīng)用于遠程數(shù)據(jù)庫210。因此,可以顯著地減少差異的數(shù)量??梢詫⑦@種發(fā)送文件300和310的批處理稱作“程序分塊(chunking)”。該程序塊內(nèi)的第一和最后一個發(fā)送文件300和310可以被分別稱作低和高水印。第一程序塊(稱作初始程序塊)可以包括初始化發(fā)送文件310。所有的接下來的程序塊(稱作終端程序塊)可以僅包括發(fā)送文件。
程序分塊可以提供群驗證,而不是分開驗證。因此,如果在一個程序塊內(nèi)檢測到錯誤,則可以將整個程序塊指定為無效的,而不僅僅是出現(xiàn)錯誤的發(fā)送文件300或初始化發(fā)送文件310。
可以使用根據(jù)本發(fā)明教導編程的通用微處理器實現(xiàn)本發(fā)明實施例的機制和方法。因而,本發(fā)明的實施例還包括機器可讀媒體,其包括指令,這些指令可以用于編程處理器以執(zhí)行根據(jù)本發(fā)明實施例的方法。該媒體可包括但不僅限于任意類型的盤,包括軟盤、光盤和CD-ROM。
在此具體圖示和描述了本發(fā)明的若干實施例。然而,將認識到本發(fā)明的修改和變化利用上述教導來覆蓋并落入權(quán)利要求書的保護范圍而不脫離本發(fā)明的精神和預(yù)期范圍。
權(quán)利要求
1.一種用于通過網(wǎng)絡(luò)驗證對遠程數(shù)據(jù)庫內(nèi)的記錄更新的方法,該更新包括至少一個事件,包括比較遠程數(shù)據(jù)庫內(nèi)的記錄與本地數(shù)據(jù)庫內(nèi)的相應(yīng)記錄;對于每個差異,生成描述遠程數(shù)據(jù)庫記錄和本地數(shù)據(jù)庫記錄之間差異的例外;相關(guān)例外標識符與每個例外,其中每個例外標識符與記錄的標識符相關(guān);相關(guān)事件標識符與更新中的每個事件,其中每個事件標識符與記錄的標識符相關(guān);和通過比較事件與對應(yīng)于該記錄的例外來確定更新是否是有效的。
2.權(quán)利要求1的方法,其中如果通過對應(yīng)于記錄的事件證明對應(yīng)于記錄的每個例外是合理的,則對該記錄的更新是有效的。
3.權(quán)利要求2的方法,其中例外的類型包括第一例外類型,其中記錄在遠程數(shù)據(jù)庫內(nèi),而不在本地數(shù)據(jù)庫內(nèi);第二例外類型,其中記錄在本地數(shù)據(jù)庫內(nèi),而不在遠程數(shù)據(jù)庫內(nèi);和第三例外類型,其中記錄在本地數(shù)據(jù)庫和遠程數(shù)據(jù)庫內(nèi),并且本地數(shù)據(jù)庫內(nèi)記錄的字段的值不同于遠程數(shù)據(jù)庫內(nèi)該記錄的相同字段的值。
4.權(quán)利要求3的方法,其中事件證明例外是合理的,如果該事件是從本地數(shù)據(jù)庫中刪除記錄,并且該例外是第一例外類型;該事件是記錄添加到本地數(shù)據(jù)庫,并且該例外是第二例外類型;該事件是修改本地數(shù)據(jù)庫內(nèi)的記錄,并且該例外是第三例外類型;或者該事件是刪除,其后跟隨著記錄被添加到本地數(shù)據(jù)庫,并且該例外是第三例外類型。
5.權(quán)利要求1的方法,還包括如果確定更新是無效的,在確定更新是無效的之后,將用于驗證更新的方法重復(fù)給定次數(shù)。
6.權(quán)利要求1的方法,其中比較包括比較整個本地數(shù)據(jù)庫與整個遠程數(shù)據(jù)庫。
7.一種用于驗證遠程數(shù)據(jù)庫的方法,包括根據(jù)對本地數(shù)據(jù)庫的遞增改變將多個定期更新發(fā)送給遠程數(shù)據(jù)庫,多個定期更新中的每個定期更新包括至少一個事務(wù)處理;向遠程數(shù)據(jù)庫發(fā)送初始化更新,包括作為在開始時間上存在的本地數(shù)據(jù)庫的本地數(shù)據(jù)庫版本,其中將初始化更新應(yīng)用于遠程數(shù)據(jù)庫;識別本地數(shù)據(jù)庫與遠程數(shù)據(jù)庫之間的差異;確定差異是否是有效的;和通知遠程數(shù)據(jù)庫應(yīng)用定期更新,其中這些定期更新具有的開始時間晚于初始化更新的開始時間。
8.權(quán)利要求7的方法,還包括如果確定更新是無效的,在確定更新是無效的之后,將用于驗證更新的方法重復(fù)給定次數(shù)。
9.權(quán)利要求7的方法,其中差異包括第一差異類型,其中記錄在遠程數(shù)據(jù)庫內(nèi),而不在本地數(shù)據(jù)庫內(nèi);第二差異類型,其中記錄在本地數(shù)據(jù)庫內(nèi),而不在遠程數(shù)據(jù)庫內(nèi);和第三差異類型,其中記錄在本地數(shù)據(jù)庫和遠程數(shù)據(jù)庫內(nèi),并且本地數(shù)據(jù)庫內(nèi)記錄的字段的值不同于遠程數(shù)據(jù)庫內(nèi)該記錄的相同字段的值。
10.一種用于通過網(wǎng)絡(luò)驗證對遠程數(shù)據(jù)庫內(nèi)的記錄更新的系統(tǒng),其中該更新包括至少一個事件,該系統(tǒng)包括至少一個處理器,耦合到網(wǎng)絡(luò);和存儲器,耦合到處理器,該存儲器包括數(shù)據(jù)庫和指令,所述指令適合于由處理器執(zhí)行以實現(xiàn)一種用于通過網(wǎng)絡(luò)驗證遠程數(shù)據(jù)庫內(nèi)的記錄更新的方法,該方法包括比較遠程數(shù)據(jù)庫內(nèi)的記錄與本地數(shù)據(jù)庫內(nèi)的相應(yīng)記錄;對于每個差異,生成描述遠程數(shù)據(jù)庫記錄和本地數(shù)據(jù)庫記錄之間差異的例外;相關(guān)例外標識符與每個例外,其中每個例外標識符與記錄的標識符相關(guān);相關(guān)事件標識符與更新中的每個事件,其中每個事件標識符與記錄的標識符相關(guān);和通過比較事件與對應(yīng)于該記錄的例外來確定更新是否是有效的。
11.權(quán)利要求10的系統(tǒng),其中如果通過對應(yīng)于該記錄的事件證明對應(yīng)于該記錄的每個例外是合理的,則對該記錄的更新是有效的。
12.權(quán)利要求11的系統(tǒng),其中例外的類型包括第一例外類型,其中記錄在遠程數(shù)據(jù)庫內(nèi),而不在本地數(shù)據(jù)庫內(nèi);第二例外類型,其中記錄在本地數(shù)據(jù)庫內(nèi),而不在遠程數(shù)據(jù)庫內(nèi);和第三例外類型,其中記錄在本地數(shù)據(jù)庫和遠程數(shù)據(jù)庫內(nèi),并且本地數(shù)據(jù)庫內(nèi)記錄的字段的值不同于遠程數(shù)據(jù)庫內(nèi)該記錄的相同字段的值。
13.權(quán)利要求12的系統(tǒng),其中事件證明例外是合理的,如果該事件是從本地數(shù)據(jù)庫中刪除記錄,并且該例外是第一例外類型;該事件是記錄添加到本地數(shù)據(jù)庫,并且該例外是第二例外類型;該事件是本地數(shù)據(jù)庫內(nèi)記錄的修改,并且該例外是第三例外類型;或者該事件是刪除,其后跟隨著將記錄添加給本地數(shù)據(jù)庫,并且該例外是第三例外類型。
14.權(quán)利要求10的系統(tǒng),其中如果確定更新是無效的,在確定更新是無效的之后,處理器將用于驗證更新的方法重復(fù)給定次數(shù)。
15.權(quán)利要求11的系統(tǒng),其中處理器比較整個本地數(shù)據(jù)庫與整個遠程數(shù)據(jù)庫。
16.一種機器可讀媒體,包括程序指令,所述程序指令適合于由處理器執(zhí)行以實現(xiàn)一種用于通過網(wǎng)絡(luò)驗證對遠程數(shù)據(jù)庫內(nèi)的記錄更新的方法,其中更新包括至少一個事件,該方法包括比較遠程數(shù)據(jù)庫內(nèi)的記錄與本地數(shù)據(jù)庫內(nèi)的相應(yīng)記錄;對于每個差異,生成描述遠程數(shù)據(jù)庫記錄和本地數(shù)據(jù)庫記錄之間差異的例外;相關(guān)例外標識符與每個例外,其中每個例外標識符與記錄的標識符相關(guān);相關(guān)事件標識符與更新中的每個事件,其中每個事件標識符與記錄的標識符相關(guān);和通過比較事件與對應(yīng)于該記錄的例外來確定更新是否是有效的。
17.權(quán)利要求16的機器可讀媒體,其中如果確定更新是無效的,則在確定更新是無效的之后,處理器將用于驗證更新的方法重復(fù)給定次數(shù)。
18.權(quán)利要求16的機器可讀媒體,其中如果通過對應(yīng)于該記錄的事件證明對應(yīng)于該記錄的每個例外是合理的,則對該記錄的更新是有效的。
19.權(quán)利要求16的機器可讀媒體,其中例外的類型包括第一例外類型,其中記錄在遠程數(shù)據(jù)庫內(nèi),而不在本地數(shù)據(jù)庫內(nèi);第二例外類型,其中記錄在本地數(shù)據(jù)庫內(nèi),而不在遠程數(shù)據(jù)庫內(nèi);和第三例外類型,其中記錄在本地數(shù)據(jù)庫和遠程數(shù)據(jù)庫內(nèi),并且本地數(shù)據(jù)庫內(nèi)記錄的字段的值不同于遠程數(shù)據(jù)庫內(nèi)該記錄的相同字段的值。
20.一種用于通過網(wǎng)絡(luò)驗證數(shù)據(jù)傳輸?shù)姆椒?,包括識別信源和目的地之間的數(shù)據(jù)差異;識別被包括在傳輸中的信源上的數(shù)據(jù)改變;和比較差異與改變,以確定傳輸是否是有效的。
21.權(quán)利要求20的方法,其中信源和目的地是域名服務(wù)器。
22.權(quán)利要求20的方法,其中差異包括在信源內(nèi)而不在目的地內(nèi)的域名;在目的地內(nèi)而不在信源內(nèi)的域名;和在信源和目的地內(nèi)是不同的對應(yīng)域名。
23.權(quán)利要求20的方法,其中改變至少包括以下之一向域名服務(wù)器添加域名;從域名服務(wù)器中刪除域名;和域名服務(wù)器內(nèi)域名的修改。
24.一種驗證器,包括用于識別信源和目的地之間的數(shù)據(jù)差異的裝置;用于識別被包括在傳輸中的信源上的數(shù)據(jù)改變的裝置;和用于比較差異與改變以確定傳輸是否是有效的裝置。
25.權(quán)利要求10的系統(tǒng),還包括至少一個遠程處理器,耦合到網(wǎng)絡(luò);和遠程存儲器,耦合到遠程處理器,該遠程存儲器存儲遠程數(shù)據(jù)庫和適合于由遠程處理器執(zhí)行的指令,以便根據(jù)在網(wǎng)絡(luò)上從數(shù)據(jù)庫接收到的新信息創(chuàng)建新元素;和在不限制對遠程數(shù)據(jù)庫的搜索訪問的情況下,使用單個不可中斷的操作將到新元素的指針寫入遠程數(shù)據(jù)庫。
26.權(quán)利要求25的系統(tǒng),其中所述指令還適合于在將指針寫入數(shù)據(jù)庫之后物理地刪除現(xiàn)有元素。
27.權(quán)利要求25的系統(tǒng),其中單個不可中斷的操作是存儲指令。
28.權(quán)利要求27的系統(tǒng),其中遠程處理器具有至少n字節(jié)的字長度,遠程存儲器具有至少n字節(jié)的寬度,而存儲指令將n字節(jié)寫入位于n字節(jié)邊界上的遠程存儲器地址。
全文摘要
本發(fā)明的實施例提供用于通過網(wǎng)絡(luò)驗證遠程數(shù)據(jù)庫更新的方法和系統(tǒng)??梢员容^本地數(shù)據(jù)庫(200)記錄與遠程數(shù)據(jù)庫記錄,并可以生成例外。每個例外可以描述遠程數(shù)據(jù)庫記錄和本地數(shù)據(jù)庫(200)記錄之間的差異。可以相關(guān)例外標識符與每個例外,其中可以相關(guān)例外標識符與記錄的標識符??梢韵嚓P(guān)事件標識符與更新中的每個事件,其中可以相關(guān)事件標識符與記錄的標識符??梢员容^事件與對應(yīng)于記錄的例外來確定更新是否是有效的。
文檔編號G06F12/00GK1610901SQ02826511
公開日2005年4月27日 申請日期2002年11月1日 優(yōu)先權(quán)日2001年11月1日
發(fā)明者A·N·巴洛, B·T·麥克米倫 申請人:弗里塞恩公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1