中文字幕无码日韩视频无码三区

更新遠程數據庫的方法和系統的制作方法

文檔序號:6434435閱讀:151來源:國知局
專利名稱:更新遠程數據庫的方法和系統的制作方法
技術領域
本發明涉及一種計算機數據庫,特別涉及一種可靠的更新數據庫的方法和系統。
背景技術
隨著數據庫規模的增加和其結構的高度分布化,要保證網絡中相關的數據庫所包含的數據版本相同變得越來越困難。如果一個數據庫有明顯的變化,其它的數據庫可能需要盡快更新來產生這些變化。進行上述更新可能導致需要經常在不同的數據庫中移動大量的更新信息。這種處理過程的潛在復雜性將是極大的。
當系統中的通信不可靠時,這樣的問題將進一步擴大。在這種情況下,數據會在傳輸過程中丟失。于是數據就必須重新傳輸,并且導致其它的數據庫進行再次更新。這樣的重復將明顯降低系統的工作效率,以及數據庫中所包含的最新數據的程度。


圖1所示是根據本發明一種實施方式的系統框圖。
圖2所示是根據本發明一種實施方式的中心系統框圖。
圖3所示是根據本發明一種實施方式,將數據庫更新從本地數據庫向遠程數據庫傳輸的例子。
圖4所示是根據本發明一種實施方式的發送文件。
圖5所示是根據本發明一種實施方式的初始發送文件。
圖6所示是舉例說明根據本發明一種實施方式,生成發送文件以及生成初始化發送文件的時間表。
圖7所示是根據本發明一種實施方式,生成本地數據庫的更新文件的流程圖。
圖8所示是根據本發明一種實施方式,從遠程數據庫接收來自本地數據庫的更新文件的流程圖。
圖9所示是根據本發明另一種實施方式,從遠程數據庫接收并驗證來自本地數據庫的更新文件的流程圖。
圖10A所示是根據本發明一種實施方式的證實更新文件的流程圖。
圖10B所示是根據本發明另一種實施方式的證實更新文件的流程圖。
圖11所示是舉例說明根據本發明一種實施方式的證實更新文件的示意圖。
詳細描述本發明提供一種可靠的通過網絡更新遠程數據庫(210)的方法和系統。在具體實施方式
中,基于本地數據庫所增加的變化,生成一定數量的的定期更新(以下稱為“發送文件”)。每個定期更新包括至少一個事務處理。生成一個初始更新(以下稱為“初始發送文件”),包括本地數據庫在起始時刻的版本。另外,生成一個與起始時刻之前最后的周期更新相關聯的標識符,以及一個與起始時刻之前最后所提交的事務處理相關聯的標識符。具體的實施方式還方便地提供對發送文件以及初始化發送文件的分解,來進行遠程數據庫的可靠的更新。
圖1所示是根據本發明一種實施方式的系統框圖。通常,系統100具有一個大容量且內置有存儲器的數據庫,通過網絡接收搜索請求并且提供搜索應答。例如,系統100可以是一個均衡多處理(SMP)計算機,比如,紐約Armonk IBM公司制造的IBM RS/6000 M80或S80,加利福尼亞州的Santa Clara的Sun Microsystem,Inc.制造的SunEnterpriseTM10000等等;系統100也可以是多處理的個人計算機,比如加利福尼亞州Palo Alto的Hewlett-Packard公司制造的CompaqProliantTMML530(包括兩個因特爾奔騰III866Mhz處理器)。系統100也可以包括一個多處理操作系統,比如IBM AIX4,Sun SolarsTM8操作環境,Red Hat Linux6.2等等。系統100通過網絡124接收定期更新,同時結合到數據庫中。本發明只需通過將每個更新結合到數據庫中,而不需要使用數據庫鎖或者通路控制,就可達到很高的數據庫搜索量以及更新量。
在一種實施方式中,系統100可包括至少一個連接到總線101的處理器102-1。處理器102-1可包括一個內部的高速緩沖存儲器(例如一個L1高速緩存,圖中未明示)。一個第二高速緩沖存儲器103-1(例如一個L2/L3高速緩存,L2/L3高速緩存等)位于處理器102-1和總線101之間。在一種優選的實施方式中,系統100可包括一定數量的處理器102-1……102-P連接到總線101。一定數量的第二高速緩沖存儲器103-1……103-P也可位于一定數量的處理器102-1……102-P與總線101之間(例如一個瀏覽結構),或者等同的,至少一個第二高速緩沖存儲器103-1連接到總線101(例如一個察看結構)。系統100包括存儲器104連接到總線101,比如隨機存儲器(RAM),存儲一定數量的處理器102-1……102-P所執行的信息和指令等。
存儲器104可存儲一個大容量數據庫,例如,用來傳送互聯網域名到互聯網地址,用來傳送名稱或電話號碼到網絡地址,用來提供和更新用戶分布的數據,用來提供和更新用戶存在的數據等等。有利的,數據庫的容量以及每秒傳送的數據量都可以很大。例如,存儲器104可包括至少64GB的RAM,并具有一個500M域名記錄數據庫(即500×106),一個500M用戶記錄數據庫以及一個450M記錄電話號碼的便攜式數據庫等。
在一種64比特系統結構的實施方式中,例如,系統包括至少一個64比特big endian處理器102-1,連接到至少64比特總線101和64比特存儲器104,使用一個單獨無干擾的操作,可將一個8字節的指針值寫入到存儲器地址中的一個8字節邊界(即存儲器地址除以8或者例如8N)。通常,第二高速緩沖存儲器103-1的存在可簡單地延遲8字節指針寫入存儲器104。例如,在一種實施方式中,第二高速緩沖存儲器103-1可以是一個使用通寫模式的瀏覽高速緩沖存儲器,所以不受到干擾的情況下可使用一個簡單的8字節存儲指令,將8字節的數據從處理器102-1移動到存儲器104,,并且只需在兩個系統時鐘回路內。在另一種實施方式中,第二高速緩沖存儲器103-1是一個使用反寫模式的瀏覽高速緩沖存儲器,所以上述8字節指針可以首先寫入第二高速緩沖存儲器103-1,以后的某一時刻再寫入存儲器104,比如,當存儲8字節指針的高速緩沖存儲線寫入存儲器104的時刻(即例如特定的高速緩沖存儲線或整個第二高速緩沖存儲器“溢出”的時候)。
根本的,如果是處理器102-1,那么當數據被寄存在處理器102-1的輸出管腳時,所有被第二高速緩沖存儲器103-1所延遲的8字節數據,都以持續無干擾的方式寫入存儲器104;如果是處理器102-2……102-P的結構,那么一旦數據被寄存在處理器102-1的輸出管腳上,所有的8字節數據都以持續無干擾的方式寫入存儲器104,它們被覆蓋高速緩沖存儲器103-1……103-P的內部協議所強制執行,從而延遲了它們寫入存儲器104。
但是,當一個8字節指針值被寫入存儲器104的偏移位置,例如一個跨越8字節邊界的存儲地址,所有8字節數據就不能用一個單獨的8字節存儲指令從處理器102-1傳送。那么處理器102-1發出兩個單獨且不同的指令。例如,如果存儲地址開始于8字節邊界(例如8N-4)之前的4個字節,第一存儲指令傳送4個最重要的字節給存儲器104(例如8N-4),而第二存儲指令傳送4個最不重要的字節給存儲器104(例如8N)。重要的是,在這兩個單獨的存儲指令之間,處理器102-1可能會被干擾,或者存儲器102-1可能會將對總線101的控制釋放給另一系統部件(例如處理器102-P等)。因此,位于存儲器104中的指針值要直到處理器102-1完成第二存儲指令時才開始有效。如果另一個部件開始向該存儲器位置進行單獨無干擾的讀取,一個無效值將會變回一個可能有效的值。
類似的,一個新的4字節指針值可利用一個單獨無干擾的操作寫入除以4的存儲地址(例如4N)。注意在以上討論的實施方式中,一個4字節指針值可用一個單獨存儲指令寫入8N-4的存儲位置。當然,如果一個4字節指針值寫入一個跨越4字節邊界的位置,例如4N-2,那么所有4字節數據就不能用一個單獨存儲指令從102-1傳送,并且存儲器104中的指針值可能會無效一段時間。
系統100也可包括一個只讀存儲器(ROM)106,或者其它靜態存儲設備連接到總線101,用于存儲處理器102-1的靜態數據以及指令。一個存儲設備108,例如磁盤或光盤,可連接到總線101用于存儲信息和指令。系統100也可包括顯示裝置110(例如LCD顯示器)和輸入裝置112(例如鍵盤,鼠標,跟蹤球等)連接到總線101。系統100也可包括一定數量網絡接口114-1……114-0,可用于接收和發送電、電磁或光信號,它們載有表示不同種類信息的數字信號流。在一種實施方式中,網絡接口114-1可連接到總線101和本地局域網(LAN)122,而網絡接口114-0可連接到總線101和廣域網(WAN)124。一定數量的網絡接口114-1……114-0可支持不同的網絡協議,包括例如吉比特以太網Gigabit Ethernet(例如2002年出版的IEEE標準802.3-2002),Fiber Channel(例如1994年出版的ANSI標準X.3230-1994),等等。一定數量的網絡計算機102-1……102-N可連接到LAN122和WAN124。在一種實施方式中,LAN122和WAN124可以是物理上不同的網絡,而在另一種實施方式中,LAN122和WAN124也可以經由網關或路由器(圖中未示出)。等同的,LAN122和WAN124也可以是相同的網絡。
如上所述,系統100可提供域名服務器(DNS)解析服務。在一個DNS解析的實施方式中,DNS解析服務通常在網絡傳輸和數據查找功能中分開。例如,系統100可以是一個后端查找引擎(LUE),將其優化用于大量數據系列中的數據查找;而一定數量的網絡計算機120-1……120-N可以是一定數量的前端協議引擎(PE),將其優化用于網絡處理和傳輸。LUE可以是一個在存儲器104中存儲整個DNS記錄序列的大功率多處理服務器,便于高速,高量的搜索和更新。在另一種等同的實施方式中,DNS解析服務可由一定數量的大功率多處理服務器或者LUE提供,每個服務器或LUE都在存儲器中存儲整個DNS記錄系列的子集,便于高速,高量的搜索和更新。
相反的,所述一定數量的PE可以是普通的低分布的基于PC的機器,運行一個可有效的多任務操作系統(例如Red Hat Linux6.2),可最小化LUE上網絡處理傳輸負載,從而最大化用于DNS解析的可用資源。PE掌握有線線路DNS協議的細微差別,通過LAN122應答無效的DNS請求并且復用有效的DNS請求給LUE。在另一種等同的實施方式中,具有多個LUE存儲DNS記錄子集,PE將決定哪個LUE接收每個有效的DNS記錄子集,并且復用有效DNS請求給合適的LUE。用于單個LUT的PE的數目將由,例如,每秒所處理的DNS請求的數目和特定系統的性能特征來決定。其它的尺度也可用來決定這個適當的映射比例和工作情況。
通常,其它的大量的基于請求的實施方式也可支持,包括例如,電話號碼解析,SS7信號處理,地理位置確定,電話號碼到用戶的映射,用戶位置和其存在的確認等。
在一種實施方式中,一個中心在線事務處理(OLTP)服務器140-1可連接到WAN124,并且接收來自不同來源的對數據庫142-1所進行的添加,修改和刪除(即更新操作)。OLTP服務器140-1可通過WAN124將包括一個本地數據庫140-2復制件的更新發送給系統100。OLTP服務器140-1可被優化來以不同的形式和協議進行更新的通信,包括例如超文本傳輸協議(HTTP),注冊協議(RRP),可擴展暫時協議(EPP),服務管理系統/800機制普通接口(MGI),以及其它的在線暫時協議。一個只讀LUE星陣可被應用于一個中心和對話式結構,來提供與其相結合的來自OLTP服務器140-1的高容量、漸增的更新的高速搜索能力。
在一種等同的實施方式中,數據可被分散到多個連接到WAN124的OLTP服務器140-1……140-S。OLTP服務器140-1……140-S可從不同來源分別接收對數據庫142-1……142-S所進行的添加,修改和刪除(即更新通信)。OLTP服務器140-1……140-S可將包括數據庫140-1……140-S復制件或者其它動態創建的數據等的更新,通過WAN124向系統100發送。例如,在一種定位的實施方式中,OLTP服務器140-1……140-S可接收遠程傳感器組的更新通信。在另一種等同的實施方式中,一定數量的網絡計算機120-1……120-N也可通過WAN124或LAN122接收添加,修改和刪除(即更新操作)。在這種實施方式中,一定數量網絡計算機120-1……120-N就像發送請求一樣,向系統100發送更新。
在DNS解析的實施方式中,每一個PE(例如每一個網絡計算機120-1……120-N)可將多個從廣域網(例如WAN124)接收的DNS請求報文,結合或者復用成為一個單獨的請求復合數據包,并且通過本地局域網(例如LAN122)發送至LUE(例如系統100)。LUE可將多個DNS請求報文應答,結合或者復用成為一個單獨的應答復合數據包,并且通過本地局域網發送至適當的PE。通常,應答復合數據包最大長度限定在網絡物理層(例如Gigabit Ethernet)的最大傳輸單元(MTU)之內。例如,典型的DNS請求和應答報文長度分別小于100字節和200字節,這就允許30個請求復用成為一個單獨請求復合數據包,15個應答復用成為一個單獨的應答復合數據包。但是,一個單獨的復合請求數據包中應該包含更小數目的請求(例如20個請求),目的是避免MTU應答時的溢出。如果有更大的MTU長度,請求和應答復用的數目也可相應的增加。
每個多任務PE包括一個進入線程和一個輸出線程來分別管理DNS請求和應答。例如,進入線程可打亂通過廣域網接收的DNS請求數據包的DNS請求組成部分,并且將幾個毫秒內的請求復用至一個單獨的請求復合數據包。然后進入線程通過本地局域網將請求復合數據包發送到LUE。反之,輸出線程可從LUE接收應答復合數據包,將其中的應答解復用,并將不同的字段排列成為一個有效的DNS應答,使其可通過廣域網傳輸。通常,如上所述,其余的大容量的基于請求的實施方式也可是支持的。
在一種實施方式中,請求復合數據包也可包括與每個DNS請求相關聯的狀態信息,例如,來源地址,協議類型等。LUE可將狀態信息和相關聯的DNS應答包括在應答復合數據包中。然后每個PE利用來自LUE傳輸的信息建立并回傳有效的DNS應答報文。因此,每個PE可方便的作為一個無狀態的機器進行操作,即有效的DNS應答可由應答復合數據包中包含的信息形成。通常,LUE可回傳應答復合數據包給PE,即發送輸入的復合數據包的PE。但是,其它的變形方式明顯也可以。
在一種等同的實施方式中,每個PE可在請求復合數據包中包括與每個DNS請求相關聯的狀態信息,并且包括請求復合數據包的一個狀態信息的參數或操作。LUE可在應答復合數據包中包括狀態信息參數和相關DNS應答。然后每個PE利用來自LUE的狀態信息參數和隨后的狀態信息,建立并回傳有效的DNS應答報文。在這種實施方式中,LUE可將應答復合數據包回傳給PE,即發送輸入的復合數據包的PE。
圖2所示是根據本發明一種實施方式的中心系統框圖。通常,系統可包括一個本地數據庫200(可包含在OLTP140中心)和一個或多個遠程數據庫210(可包含在LUE100中),通過例如互聯網或LAN122的連接機制連接到本地數據庫。數據庫可發送和接收更新數據。
圖3是根據本發明的一種實施方式,本地數據庫200將F個發送文件300-1……300-F以及初始發送文件310發送到遠程數據庫210,用于更新遠程數據庫210。更新文件可以是單獨發送或者成批發送,例如復用發送文件300,一個發送文件300和一個初始發送文件310,復用發送文件300和一個初始發送文件310,只有發送文件300,或者只有初始發送文件310。
在本發明的一種實施方式中,處理器104可從本地數據庫200接收包含更新數據的發送文件300和/或初始發送文件310。系統150可在遠程數據庫210通過通信接口118接收發送文件300和初始發送文件310。然后處理器104將發送文件300或初始發送文件310中的更新數據與遠程數據庫210中相應的數據進行比較。如果遠程數據庫210中的數據不同,處理器104可將發送文件300或初始發送文件310應用于遠程數據庫210。相應的,遠程數據庫210可依次獲得與本地數據庫200匹配的更新數據。
圖4所示是根據本發明一種實施方式的發送文件300。發送文件300的字段包括,文件標識符400,文件生成時間402,文件中的事務處理數目N404,文件總長度406,校驗位或類似的錯誤校驗指示符408,以及事務處理410-1……410-N(包括事務處理標識符)。這些發送文件字段只是舉例說明,不能作為本發明實施方式的限制。任何有用的字段都可包括在發送文件300中。
發送文件300包含兩個時刻之間本地數據庫200的變化。這些變化包括例如,新標識符的添加(即數據記錄的標識符),已有標識符的刪除,與一個標識符相關的一個或多個數據記錄的修改,標識符的重新命名,不操作等等。一個或多個這種變化可順序發生,稱為事務處理。發送文件300包括這些事務處理的唯一的標識符。這些事務處理可按它們在本地數據庫200中發生的順序記錄在發送文件300中。另外,對于那些包括多個變化的事務處理,這些變化將按它們在本地數據庫200中發生的順序記錄在事務處理中。
通常,事務處理標識符可按任何順序分配到事務處理中,即事務處理標識符不需要隨時間單調遞增。例如,依次的兩項事務處理的事務處理標識符可首先是10004其次是10002。相應的,事務處理發生的的順序可由其在當前文件300-F或者在先前文件300-(F-1)中的位置來決定。通常,事務處理不跨越相鄰的文件300,目的是在一個發送文件的應用過程中完成遠程數據庫的更新。這可以防止由于網絡延時對更新產生的干擾,而這種干擾有可能導致遠程數據庫210中的錯誤更新。
圖5所示是根據本發明一種實施方式的初始發送文件310。初始發送文件310的字段可包括,例如,文件標識符500,文件生成時間502,文件中的事務處理數目N504,文件的總長度506,校驗位和或類似的錯誤校驗指示符508,以及整個本地數據庫的復制件(數據)516。初始發送文件310還可包括字段510,表示在文件310生成之前所生成的最后一個發送文件300的文件標識符400,以及字段512,表示在初始發送文件310生成之前最后對本地數據庫200所提交的事務處理。本地和遠程數據庫200,210中的數據可位于數據庫200,210中的列表中,數據庫200,210可支持一個任意數目的列表。所以,當數據庫包括列表時,初始發送文件310可包括一個字段,用于表示每個列表中所記錄的記錄數目。例如,域名數據庫可包括一個域列表和一個名稱服務器列表。因此,初始發送文件就包括一個字段,用于表示域名列表中的記錄數目,以及一個字段用于表示名稱服務器列表中的記錄數目。例如列表名稱,該字段將指定用于列表中記錄索引的密鑰,以及列表中的記錄數目。另外,初始發送文件310可包括一個字段用于表示初始發送文件的版本,通常是1.0。這些初始發送文件的字段只是舉例說明,不能作為本發明實施方式的限制。任何有用的字段都可包括在初始發送文件310中。
初始發送文件310可如前所述包括,例如,整個本地數據庫200的讀出一致的復制件。初始發送文件310可在時間點ts和tf之間與本地數據庫200形成一致,ts是初始發送文件310生成起始的時刻,tf是生成完成的時刻。因此,在生成初始發送文件310時僅有的操作就是一個“添加”操作。即,在初始發送文件生成時,整個本地數據庫200在t時刻的復制件將記錄在初始發送文件310中。因此,可執行一個“添加”操作把本地數據庫200記錄到初始發送文件310。標識符可以以任何順序記錄在初始發送文件310中。等同的,如果存在外來的標識符,已參考的數據記錄在正參考的數據之前。
字段510和512還可附加提供給初始發送文件310一個提示,表示當初始發送310生成時,生成發送文件300以及向遠程數據庫210提交了。但是,考慮到發送文件300和初始發送文件310的生成之間缺乏相關性,它們的生成被分解開。這樣的結構和過程可防止一種低效率的操作,即在完成初始發送文件的生成之前,發送文件的生成和應用一直被延緩。在本發明的實施方式中,在生成初始發送文件310的同時持續生成和應用發送文件300,對發送文件300進行強大的錯誤校驗以及對遠程數據庫210進行系統參數規定,例如,唯一的系統參數或者外來標識符系統參數。對系統規定參數,可阻止那些干擾遠程數據庫210的相關模式的事務處理,從而保護遠程數據庫210中資料的完整。例如,唯一的系統參數可阻止將相同的密鑰多次存儲于數據庫210中。
圖6所示是根據本發明一種實施方式的發送文件和初始發送文件的時間表。在圖中,發送文件300(sf-5到sf-21)生成于規則的時間間隔。在一種等同的實施方式中,發送文件也可生成與不規則的時間間隔。通常,發送文件的生成不占用整個的時間間隔。例如,如果發送文件生成的間隔是5分鐘,它并不占用整個的5分鐘時間來完成文件的生成過程。另外,如果當生成發送文件300的時候,在本地數據庫200中發生了變化,那么這些變化將由下一個發送文件收集。例如,如果發送文件sf-4生成開始于12:05:00,結束于12:05:02,那么在12:05:00和12:05:02之間發生的變化將由收集在12:05:00和12:05:02之間的變化的發送文件sf-5(即300-5)來收集。
發送文件300-5和300-19在圖6中說明。這些文件表示,在其它字段之間的文件標識符601(sf-5,sf-19),文件生成時間603以及事務處理標識符605(例如10002)。應當注意事務處理標識符可以不是順序單調遞增的。如前所述,事務處理標識符可具有隨機值。但是,相關的事務處理自身將以它們在本地數據庫中所發生順序記錄于發送文件300中。
由于初始發送文件310的生成和發送文件300的生成是分解開的,初始發送文件310可生成于任意時刻。例如,初始發送文件310可生成于發送文件300生成之前,期間或之后。圖6所示是初始發送文件310在第四和第五發送文件(例如sf-4和sf-5)生成之間生成。
在一種實施方式中,初始發送文件310可在其它字段中包含文件標識符610(isf-1),初始發送文件生成之前最后生成的發送文件的文件標識符615,以及初始發送文件生成之前最后提交的事務處理的事務處理標識符620。在上述例子中,最后生成的發送文件是發送文件sf-4,最后提交的事務處理是事務處理10001。初始發送文件310于12:07:29開始生成611。在初始發送文件310開始生成時,發送文件300-5(sf-5)的前一半,事務處理10002,100005以及10001都已經向本地數據庫200提交了。相應的,初始發送文件310包括這些事務處理的提示以及將這些事務處理收集于初始發送文件310中。但是初始發送文件310并不了解在初始發送文件的生成開始之后所依次發生的事務處理10003和10004。
當生成初始發送文件310時,以發送文件300-5開始的發送文件將在規定的間隔生成。這些發送文件可發送到遠程數據庫210并且應用。
生成初始發送文件310完成于1:15:29,在第18和第19個發送文件300(sf-18和sf-19)的生成之間,不會影響第19個發送文件300-9的生成、在遠程數據庫210接收到初始發送文件310之后,遠程數據庫210將不考慮那些在初始發送文件310之前生成的發送文件。因為,初始發送文件310已經包括了記錄在先前的發送文件中的本地數據庫210的所有的變化。在上述例子中,遠程數據庫210可不考慮第1到第4個發送文件(sf-1到sf-4)。發送文件sf-1到sf-4中所記錄的變化已經記錄在了初始發送文件310中。這些在前發送文件(sf-1到sf-4)可被刪除,替換或存檔。類似的,遠程數據庫210可不考慮在初始發送文件310生成之前提交的,包含在后來生成的發送文件300中的事務處理。初始發送文件310在生成時已經包括了這些事務處理。例如,遠程數據庫不考慮發送文件sf-5中的前三項事務處理10002,10005,10001,因為這些包含在發送文件sf-5中的事務處理也記錄在了初始發送文件310中。這些提交的事務處理可被刪除,替換或存檔。
圖7所示是根據本發明一種實施例方式的生成本地數據庫的更新文件的流程圖。系統將基于本地數據庫所增加的變化生成(705)一定數量的定期更新,其中每一個更新包括一個或多項事務處理。然后系統把這些定期更新發送(710)到遠程數據庫。在生成定期更新的同時,系統在起始時刻開始生成(715)一個初始更新。初始更新包括整個本地數據庫的版本。系統確定(720)在起始時刻之前生成的最后的一個定期更新以及一個最后提交的事務處理。然后系統發送(725)這些初始更新到遠程數據庫。初始更新包括一個與最后的定期更新相關聯的更新標識符和一個與最后提交的事務處理相關聯的事務處理標識符。
例如,OLTP140可在規則或不規則的時間間隔生成(705)發送文件300。然后OLTP140將發送文件300發送(710)到遠程數據庫210。當生成發送文件300時,OLTP140在起始時刻611開始生成(715)初始發送文件310。初始發送文件310可包括整個本地數據庫200的復制件。然后OLTP140確定在初始發送文件310生成的起始時刻611之前生成的最后一個發送文件300以及最后一個提交的事務處理。然后OLTP140將初始發送文件發送(725)到遠程數據庫210。初始發送文件310包括一個與最后的發送文件300相關聯的更新標識符615和一個與最后提交的事務處理相關的事務處理標識符620。
圖8所示是根據本發明一種實施方式,遠程數據庫從本地數據庫接收更新文件的流程圖。系統接收(805)一定數量的定期更新。每個更新包括一個或多項事務處理。定期更新可單獨或成批的接收。系統在某一時刻接收(810)一個初始更新。初始更新包括整個本地數據庫的版本。系統從初始更新中讀取(815)一個最后定期更新標識符和一個最后事務處理標識符。然后系統確定(820)與更新標識符相關聯的最后的定期更新以及與事務處理標識符相關聯的最后的事務處理。所述的定期更新和事務處理分別是在初始更新之前最后生成和提交的。系統把相應的定期更新中余下未提交的事務處理應用(825)于遠程數據庫。然后系統把最后的定期更新之后生成的余下的定期更新應用(830)于遠程數據庫。應用這些初始更新方便的補充了那些先前丟失的定期更新。
例如,LUE100以規則或不規則的時間間隔接收(805)發送文件300。發送文件可單獨或成批的接收。LUE100在某一時刻接收(810)一個初始發送文件310。LUE100從初始發送文件310中讀取(815)一個發送文件標識符615和一個事務處理標識符620。然后LUE100確定(820)與發送文件標識符615相關聯的發送文件以及與事務處理標識符620相關聯的事務處理605。所述的發送文件和事務處理分別是在初始發送文件310生成之前最后生成和提交的。LUE100把相應的發送文件300中余下未提交的事務處理605應用(825)于遠程數據庫210。然后LUE100把最后的發送文件sf-4之后余下的發送文件300應用(830)于遠程數據庫210。
在一個等同的實施方式中,例如LUE100可丟棄或存檔那些沒有被應用于遠程數據庫210的,和/或那些生成時間603在初始發送文件生成時間611之前的發送文件300。丟棄或存檔的發送文件300包括與發送文件標識符615相關聯的發送文件sf-4。
應當理解的是,在應用初始發送文件310之后,由于遠程數據庫210與初始發送文件310形成了讀出一致,任何在應用初始發送文件之后應用于遠程數據庫210的發送文件300可能丟失。相應的,這些其后的發送文件300被再次應用。
在本發明的一種實施方式中,發送文件300和初始發送文件310可從本地數據庫200傳送至遠程數據庫210而不需要應答信號,即不需要ACK/NACK信號來指示文件已成功接收。這可大大減少ACK/NACK信號所增加的開銷。
在一種等同的實施方式中,一個ACK/NACK信號可從遠程數據庫210發送來指示文件的成功接收。在這種實施方式中,ACK/NACK信號可以用不可靠的通信在系統中傳輸。
圖9所示是根據本發明的另一種實施方式,系統驗證從本地數據庫發送并由遠程數據庫接收的更新文件的流程圖。在此,系統發送(905)一定數量的定期更新。每個更新包括一個或多項事務處理。定期更新可單獨或成批發送。然后系統在某一時刻發送(910)一個初始更新并把這個初始更新應用于遠程數據庫。初始更新包括整個本地數據庫的版本。系統首先通過比較數據庫來識別(915)本地數據庫和遠程數據庫之間的差異。系統驗證(920)這個差異是正確還是錯誤。然后系統把定期更新按照本發明的一種實施方式應用(925)于遠程數據庫。這種實施方式可方便的保證在遠程數據庫中不會接收來自本地數據庫的錯誤更新。
例如,OLTP140以規則或不規則的時間間隔發送(905)發送文件300到遠程數據庫210。發送文件300可單獨或成批發送。OLTP140在某一時刻發送(910)初始發送文件310到LUE100,LUE可將初始發送文件310應用于遠程數據庫210。OLTP140通過比較數據庫來識別(915)本地數據庫200和遠程數據庫之間的差異。OLTP140驗證(920)這個差異是正確還是錯誤。然后OLTP140通知LUE100把發送文件300按照本發明的一種實施方式應用(925)于遠程數據庫210。然后LUE將發送文件300應用于遠程數據庫210。
在一種實施方式中,系統可在標識和驗證差異之前應用發送文件和初始發送文件。等同的,系統也可在標識和驗證差異之后應用發送文件和初始發送文件。
應該理解的是對于那些從來源通過網絡傳送到目標、目的是應用于目標數據上的任何數據,都應該執行所述驗證過程。
圖10A是根據本發明一種實施方式,發送文件和初始發送文件驗證的流程圖。在將一定數量的定期更新和初始更新發送至遠程數據庫后,系統將驗證這些數據。每個更新包括一個或多個對于本地數據庫操作的事務處理。每項事務處理包括一個或多個事件。一個事件是對一個數據庫的動作或其發生,例如對于數據庫中數據的添加,修改,刪除等。
首先,系統將遠程數據庫中的記錄和本地數據庫中相應的記錄進行比較(1000)。系統生成(1005)一個描述遠程和本地數據庫的記錄之間的差異的異常信號,其中針對每個差異生成一個異常信號。差異是指相同記錄的兩個版本之間,至少一個數據值的任何不同。例如,本地數據庫中的數據記錄是(12345,xyz.com,123.234.345),相應的遠程數據庫中的認為是相同的數據記錄是(12345,abc.com,123.234.345),可見,在記錄的第二數據值就存在一個差異。因此,根據本發明的實施方式就生成一個異常信號來描述這個差異。這個異常信號可以通過簡單的指示差異的存在,指示差異的位置,或者描述差異中兩個數據值的不同等來描述這個差異。如果認為兩個記錄包含同樣的信息,那么本地數據庫中的數據記錄就對應于遠程數據庫中的記錄(反之亦然)。
應該理解的是所述差異是指存在于一條記錄或整個記錄中一個或多個數據值的不同。
系統可把每個異常信號和異常信號標識符相關聯(1010),其中異常信號標識符是和記錄的標識符相關聯的。例如,數據記錄(12345,xyz.com,123.234.345)具有標識符d10。相應的,異常信號標識符也是d10。每個異常信號可被歸類為多個異常信號(或差異)種類中的任意一種。形成一個異常信號列表,包括異常信號的種類以及歸類于其中的異常信號標識符。異常信號列表和不同的異常信號種類將在下文進行詳細描述。系統也可把事件標識符和每個更新的事件相關聯(1015),其中事件標識符是和記錄的標識符相關聯的。例如,數據記錄(12345,xyz.com,123.234.345)具有標識符d10,相應的,事件標識符也可以是d10。每個更新的事件都可從事件記載表中找到。事件記載表可以是一段時間之內在本地數據庫中執行事件的列表等。事件記載表將在下文進行詳細的描述。
然后系統確定(1020)記錄的更新是否有效。圖10B所示是根據本發明一種實施方式的驗證確定的流程圖。這種確定將如下所述進行,每個事件與每個異常信號進行比較(1022),如果每個異常信號由事件判斷(1024)相符,那么這個更新被指明(1028)是有效的,并且被應用于遠程數據庫;否則,如果每個異常信號被事件判斷(1024)不相符,那么這個更新被指明(1028)是無效的,并且被當作錯誤存儲。當事件標識符對應于異常信號標識符,并且相關的事件對應于和異常信號種類相關聯的事件的有效順序時,那么異常信號判斷為相符。所述的有效順序將在下文進行詳細描述。如果異常信號判斷為相符,系統將從異常信號列表中除去異常信號標識符。被判斷相符的異常信號是指示這個差異是有效的,比如遠程數據庫還沒有接收到這個更新,且接收到更新后將與本地數據庫匹配。
在驗證期間,系統將在定期和初始更新中識別潛在的錯誤和故障,保證這些更新在結構和語法上是正確的,使得這些更新能夠正確的應用而不產生異常信號或意外的中斷,使得在進行本地和遠程數據庫之間進行比較時可精確的檢測到錯誤,并且使得高分布的數據不會被意外刪除。系統將保證定期和初始更新能夠成功的應用于遠程數據庫。
通過在驗證期間嘗試將更新應用于遠程數據庫,便于一些錯誤的發現,例如數據中心錯誤,關于目標已經存在于遠程數據庫中的警告,或者在嘗試應用的過程中發現外來標識符的干擾的警告。因此,在執行完根據本發明一種實施方式所述的驗證過程,系統將嘗試將這些更新應用于遠程數據庫中。這種嘗試可能失敗,即指示在更新中還有其余的錯誤導致更新無效。相應的,就不會再嘗試將這些更新應用于遠程數據庫了。
在一種等同的實施方式中,在執行驗證之前,將進行一次嘗試,將至少一個更新應用于數據庫。如果嘗試失敗,那么將跳過驗證的過程,并且丟棄這個更新。否則,如果嘗試成功,那么將執行驗證過程,并且保持有效的更新,無效的更新將作為差異存儲。
在一種實施方式中,OLTP140將驗證發送文件300和初始發送文件310來保證發送文件300和初始發送文件310被成功應用于遠程數據庫210。
在等同的實施方式中,網絡計算機121,LUE100或者任何已有系統的聯合設備也可用于執行驗證。
關于圖10A,OLTP140比較本地數據庫200和遠程數據庫210來確定它們之間的任何異常信號(或者差異)。異常信號包括三種數據位于遠程數據庫210中而沒有位于本地數據庫200中;數據位于本地數據庫200中而沒有位于遠程數據庫210中,或者相應的數據位于本地數據庫200以及遠程數據庫210中,但是該數據不同。當然,相應的位于本地數據庫200以及遠程數據庫210中的數據可以是相同的,這種情況下,數據被認為有效,從而不需要OLTP140再進行任何進一步的處理。
應該理解的是差異是指一條記錄或全部記錄中的一個或多個數據值的不同。
相應的,OLTP140比較(1000)本地數據庫200和遠程數據庫210中的相應記錄。OLTP140生成(1005)一個異常信號,描述位于遠程數據庫219中的記錄以及位于本地數據庫200中的記錄的差異,其中對于每個差異生成一個異常信號。OLTP140把異常信號標識符與每個異常信號相關聯,其中異常信號標識符是與記錄的標識符關聯的。形成一個異常信號列表,包括異常信號的種類,以及歸類于其中的異常信號標識符。在一種實施方式中,如果異常信號屬于第一種異常信號類型,那么這個異常信號被指定是“列表1”異常信號(或差異),屬于第二種異常信號類型則指定是“列表2”異常信號。圖11所示是異常情況列表1140舉例說明。
應當理解的是存在于異常信號列表中的異常信號標識符并不意味著發送文件300和初始發送文件310不好,因為,所有三種異常信號都是因為本地數據庫200的變化與應用于遠程數據庫210的更新之間的時延而合理的生成的。例如可能由網絡擁堵導致的時延。因此上述驗證過程還提供一種從錯誤數據中除去合理數據的機制。
對于初始發送文件310,OLTP140通過在數據庫200和210中執行二維全部列表掃描,來比較本地數據庫200和遠程數據庫210。即,本地數據庫200中的所有的數據將和遠程數據庫210中的所有數據進行比較。然后,遠程數據庫210中的所有的數據將和本地數據庫200中的所有數據進行比較。這樣更便于提供數據庫200和210之間的無遺漏的比較從而發現所有的差異。
對于發送文件300,OLTP140只需比較本地數據庫200和遠程數據庫210中的數據記錄。這樣更便于提供一種發現目標之間差異的快速請求。
等同的,可進行對初始發送文件310和發送文件300的隨機取樣。然后OLTP140比較本地數據庫200和遠程數據庫210中的隨機取樣數據。
異常信號列表1140可對應于錯誤的事件,例如,對本地數據庫200進行的與遠程數據庫210不一致的的添加(add),修改(mod),和刪除(del)。所以,為了識別這些候選事件,OLTP140檢查最近向本地數據庫200提交的事務處理。通常,對應于每個所提交的事務處理,在本地數據庫200所存儲的列表中產生一條目錄。這條目錄包括改變的記錄的標識符,改變的記錄的事務處理(或事件)(例如一個添加,修改,和/或刪除事件),以及一個存儲順序號用于指示事務處理的順序,等等。
一個對應列表1100如圖11所示。在這個例子中,發送文件300如列表1100所示,包括事務處理1108-1114。第一目錄1101指示在第一個事務處理1108中,數據(域名服務)n1和n2添加到了與標識符d1相關的數據(域)中。因此,標識符是d1,事件是“添加”,存儲順序號是11526。類似的,第二目錄1102指示在第二項事務處理1109中,數據n8和n9添加到了與標識符d2相關的數據中。第三目錄1103指示在第三項事務處理1110中,與標識符d3相關的數據被刪除。第四目錄指示在第四項事務處理1111中,與標識符d1相關的數據被修改并且添加了數據n5。第五個目錄1105指示在第五項事務處理1112中,數據n6和n7添加到與標識符d3相關的數據中。第六個目錄1106指示在第六項事務處理1113中,與標識符d4相關的數據被修改并刪除了數據n3。第R個目錄指示在第R項事務處理1114中,與標識符d5相關的數據被刪除。
相應的,如圖10A所示,OLTP140把一個事件標識符和更新中的每個事件相關聯(1015),其中事件標識符是與記錄的標識符相關聯的。更新中的每個事件都能從事件記載表中找到。一個根據事件標識符索引化及排序的事件記載表,可從對應列表1100產生。一個事件記載表1120的例子如圖11所示。在這,對應列表1100中的第一和第四目錄1101,1104指示與標識符d1關聯的數據的改變。因此,事件記載表1120包括標識符d1 1121和兩個事件1126,對與標識符d1關聯的數據的改變,先是“添加”然后是“修改”。第二目錄1102指示對與標識符d2對應的數據的改變。因此,事件記載表1120包括標識符d2 1122和一個“添加”事件1127。事件記載表1120包括標識符d3 1123和兩個事件1128,先是“刪除”然后是“修改”,由包括對與標識符d3關聯的第三和第五目錄1103,1105指示。第六目錄1106指示對與標識符d4關聯的數據的改變。相應的,事件記載表包括標識符d4 1124和一個“修改”事件1129。第R個目錄1107指示與標識符d5關聯的數據的改變,事件記載表1120包括標識符d5 1125和一個“刪除”事件1130。標識符1121-1125按照d1-d5的順序排列。
回到圖10A,OLTP140確定(1020)更新是否有效。這個確定可如下所述執行,例如,根據圖10B所示的實施方式,首先OLTP140比較(1022)事件標識符1121-1125和異常信號標識符1140來確定哪些標識符是對應的。例如,在圖11中,事件記載表1120中的d1事件標識符1121對應于異常信號列表1140的“列表2”中的異常信號標識符。在找到對應的事件和異常信號之后,OLTP140確定(1024)事件是否判斷了這個異常信號。這個判斷可如下所述執行。對于事件記載表1120中的每個事件標識符1121-1125,OLTP140確定事件記載表1120中的每個事件1126-1130的順序是否有效。可如下進行,例如通過檢查異常情況列表1140來確定每個異常情況標識符應屬于哪種異常類型,確定對于此種異常情況什么順序才是一個事件的有效順序,然后搜索事件記載表1120中相應的事件標識符類型以及事件標識符順序。每個異常類型的有效順序將在下文進行更詳細的描述。如果事件記載表1120中事件的一個順序1126-1130與有效的順序相匹配,那么對應的事件標識符1121-1125就是一個有效的順序。因此,與異常情況標識符關聯的異常信號將被判斷。并且,包括這些事件標識符的相應的事務處理1108-1114也是合法且沒有錯誤的。這種情況下,OLTP140可從1140中除去這些異常情況標識符。
“列表1”異常情況類型的有效順序是(修改)*(刪除)。這個順序可以包括一個先是大于等于零個“修改”事件,然后一個“刪除”事件然后是任何事件的順序。“列表1”異常情況類型可以是對應于存在于遠程數據庫210中的數據,而不是本地數據庫200中的數據。在下述情況,數據最近才從本地數據庫200中刪除,這項事務處理還沒有寫入到發送文件300。因此,發送文件300還沒有應用到遠程數據庫210。所以數據依然存在于遠程數據庫210中。這可認為是一個合理的差異,因為在這個時刻要生成發送文件300并且應用于遠程數據庫210。因此,如果在事件記載表1120中的異常情況列表1140的列表1的異常情況標識符中找到一個這樣的順序1126-1130,相應的事務處理可被認為是有效的。
例如在圖11中,d5標識符1125與其關聯的數據從本地數據庫200中刪除,對應列表1100中所示,以及在事件記載表110中索引化的第R個目錄1114。在驗證時,d5被從本地數據庫200中刪除,但是沒有從遠程數據庫210中刪除。因此,異常情況列表11140中包括標識符d5。根據事件記載表1120,與d5標識符1125關聯的事件1130是“刪除”,OLTP140比較“列表1”異常情況種類的有效順序,即(修改)*(刪除),與事件記載表1120中的d5事件1130。因為“列表1”的有效順序和事件1130匹配,與標識符d5關聯的刪除事務處理1114被認為合理且沒有錯誤。相應的,標識符d5從異常情況列表中除去。
“列表2”的事件的有效順序是(添加)。這個順序可包括一個“添加”操組,然后是任何操作。“列表2”異常情況類型可對應于存在于本地數據庫200中的數據,而不是遠程數據庫210的數據。這種情況下,數據最近被添加到本地數據庫200的事務處理還沒有寫入發送文件300。因此,發送文件300還沒有應用于遠程數據庫210。這也可認為是合理的差異因為在這個時刻要生成發送文件300并且應用于遠程數據庫210。相應的,如果在事件記載表1120中的異常情況列表1140的列表2的異常情況標識符找到一個這樣的順序1126-1130,相應的事務處理可被認為是有效的。
回到圖11,d1和d2標識符1121,1123與最初添加到本地數據庫200中的數據相關聯,例如因為它們的事件順序1126,1127以一個“添加”事件開始,d1和d2標識符1121,1123與“列表2”的異常情況類型的有效順序匹配。相應的包括這些標識符的事務處理1108,1109可被認為是有效的,標識符d1和d2從異常情況列表1140中刪除。應當注意的是d3標識符1123在其順序1128中也包括一個“添加”事件。但是,這個“添加”操作不是順序1128中的第一事件。相應的,順序1128不滿足“列表2”的種類。另外,因為d3不在異常情況1140的列表2中,OLTP140將不為列表2的有效順序檢查它。
“列表3”異常情況類型的事件的有效順序是(刪除)(添加)或者(修改)。這個順序是“刪除”事件,其次“添加”事件,其次任何事件或“修改”事件,然后是任何事件。“列表3”異常情況類型對應于存在于兩個數據庫200,210中的不同的數據。這種情況下,本地數據庫200的數據最近被修改,這項事務處理沒有寫入發送文件300中。因此,發送文件300還沒有應用于遠程數據庫210。所以,遠程數據庫210中與標識符關聯的數據還沒有修改。同樣的,這也可被認為是合理的差異,因為在相同的時刻,發送文件300生成并應用于遠程數據庫210。相應的,如果在事件記載表1120中的異常情況列表1140的列表2的異常情況標識符1126-1130找到一個這樣的順序,相應的事務處理可被認為是有效的。
例如在圖11中,d3和d4標識符1123,1124與在本地數據庫200中修改的數據關聯。在d3標識符1123,d3標識符1123以及其數據最初被刪除,并且添加了新的數據的的情況下,事件順序1128包括“刪除”隨后是“添加”。在d4標識符1124,d4的資料被修改來除去一些數據,事件順序1129包括“修改”。因為這些事件順序1128,1129與“列表3”異常情況列表的有效順序對應,它們的相應事務處理1110,1112,1113被認為是有效的,d3和d4標識符從異常情況列表1140中刪除。
關于圖10B,如果在異常情況列表1140中的由它們的標識符指示的所有的異常情況已經被事件判斷(1024),即如果異常情況列表1140是空的,OLTP140指定(1026)發送文件或初始發送文件310有效,并通知LUE應用發送文件300或初始發送文件310于遠程數據庫210。然后LUE100應用發送文件300或初始發送文件310于遠程數據庫210。
相反的,如果所有的異常情況沒有被事件所判斷(1024),即如果異常情況列表1140不是空的,那么余下的異常情況在發送文件300或初始發送文件310中指示錯誤。相應的,OLTP140指定(1028)發送文件或初始發送文件是無效的,并把錯誤信息存入錯誤文檔。
在一種等同的實施方式中,例如,如果發送文件300或初始發送文件310被指定為無效,在一段預定的時間內,OLTP140重復驗證無效的發送文件300或初始發送文件310,來保證差異的確是錯誤的。這個預定的時延允許網絡有更多的時間來傳送一些延遲的發送文件300,以及允許數據庫200,210有更多的時間來形成讀出一致。
在根據本發明的一種實施方式中,遠程數據庫210的數據“滯后”本地數據庫200的數據一段很明顯的時間間隔。相應的,為了比較數據庫200,210并檢測出錯誤,使數據庫200,210在同一時刻變為讀出一致即它們是互相的精確的復制件,通常遠程數據庫210可運行于本地數據庫200之前,這樣遠程數據庫210中的數據就能與本地數據庫中的內容相同。
相應的,為了加快驗證過程,任何當前生成的初始發送文件310和依次生成的發送文件300可在確認有效之前應用于遠程數據庫210。因此差異的數目就可明顯減少。這個把發送文件300,310分批的過程可稱為打包。信息包中的發送文件300,310的第一個和最后一個可分別稱為低位和高位水印。第一個信息包,包括初始發送文件310,稱為起始信息包。接下來的所有信息包,稱為末端信息包,只包括發送文件300。
打包提供一種成組驗證而可以不用單獨進行驗證。相應的,如果在一個信息包中檢測到一個錯誤,整個信息包將被認為是無效的,而不僅是發生錯誤的發送文件300或初始發送文件310。
根據本發明實施例的結構和方法可用一種常規目的的根據本發明實施例所指教的程序化微處理器來實施。根據本發明的實施方式還包括一個機器可讀存媒體,包括用于對處理器進行程序化,來執行根據本發明實施例所述的方法的指令。這種媒體包括而不是僅限定于,任何種類的磁盤,包括軟盤,光盤和CD-ROM。
一些本發明的實施方式在此舉例說明并描述了。但是,應當理解的是在不脫離本發明的精神和范圍的情況下,任何修改和變更都被上述示例所覆蓋并且在權利要求書的范圍內。
權利要求
1.一種通過網絡更新遠程數據庫的方法,由下列步驟構成基于本地數據庫所增加的變化生成一定數量的定期更新,其中每一個定期更新包括至少一個事務處理;通過網絡將一定數量的定期更新發送到遠程數據庫;以及在生成一定數量定期更新的同時,生成一個初始更新,包括本地數據庫在起始時刻的版本,基于一個起始時刻,確定一定數量的定期更新中的最后的一個定期更新,基于所述起始時刻,確定一個最后的事務處理,以及通過網絡,將所述初始更新,最后的一個定期更新標識符,以及最后的一個事務處理標識符發送到遠程數據庫。
2.如權利要求1所述的方法,其中發送所述初始更新包括將最后的定期更新標識符與最后的定期更新相關聯;以及將最后的事務處理標識符與最后的事務處理相關聯。
3.如權利要求1所述的方法,其中一定數量的定期更新按規則或不規則的時間間隔來生成。
4.如權利要求1所述的方法,其中初始更新生成的起始時刻與定期更新生成的起始時刻相同。
5.如權利要求1所述的方法,其中初始更新生成的起始時刻在定期更新生成的起始時刻之后。
6.如權利要求1所述的方法,其中一個定期更新包括一定數量的事務處理,其中每一個事務處理具有一個唯一的事務處理標識符。
7.一種通過網絡更新遠程數據庫的方法,由下列步驟構成通過網絡接收基于本地數據庫所增加的變化生成一定數量定期更新,其中每一個定期更新包括至少一個事務處理;通過網絡接收一個初始更新,其包括本地數據庫在起始時刻的版本;從所述初始更新中讀取最后定期更新標識符;從所述初始更新中讀取最后的一個事務處理標識符;從最后的定期更新標識符確定最后的一個定期更新,所述確定最后的定期更新是基于起始時刻進行的;從最后的事務處理標識符中確定最后的一個事務處理,所述確定最后的事務處理是基于起始時刻進行的;將在最后的事務處理之后生成的事務處理應用于遠程數據庫;以及將在最后的定期更新之后生成的定期更新應用于遠程數據庫。
8.如權利要求7所述的方法,進一步包括丟棄在初始更新的起始時刻之前生成的定期更新。
9.如權利要求7所述的方法,其中一定數量的定期更新是按周期性的時間間隔接收。
10.如權利要求7所述的方法,其中一定數量的定期更新是按周期性的時間間隔成批接收。
11.如權利要求7所述的方法,其中的定期更新包括一定數量的事務處理,其中每一個事務處理具有一個唯一的事務處理標識符。
12.一種通過網絡更新遠程數據庫的方法,由下列步驟構成基于本地數據庫所增加的變化生成一定數量的定期更新,其中每一個定期更新包括至少一個事務處理;生成一個包括本地數據庫在起始時刻的版本的初始更新,一個與起始時刻之前最后生成的定期更新相關聯的更新標識符,以及一個與起始時刻之前最后提交的事務處理相關聯的事務處理標識符。
13.如權利要求12所述的方法,其中一定數量的定期更新按規則的時間間隔來生成。
14.如權利要求12所述的方法,其中一定數量的定期更新按不規則的時間間隔來生成。
15.如權利要求12所述的方法,其中初始更新生成的起始時刻與定期更新生成的起始時刻相同。
16.如權利要求12所述的方法,其中初始更新的起始時刻在定期更新生成的起始時刻之后。
17.一種通過網絡更新遠程數據庫的系統,由下列構成至少一個與網絡連接的處理器;以及一個與處理器連接的存儲器,所述存儲器包括一個本地數據庫和所編寫的指令,由處理器執行來用于完成一種通過網絡更新遠程數據庫的方法,該方法由下列步驟構成基于本地數據庫所增加的變化生成一定數量的定期更新,其中每一個定期更新包括至少一個事務處理;通過網絡將一定數量的定期更新發送到遠程數據庫;以及在生成一定數量定期更新的同時,生成一個初始更新,包括本地數據庫在起始時刻的版本,基于一個起始時刻,確定一定數量的定期更新中的最后的一個定期更新,基于所述起始時刻,確定一個最后的事務處理,以及通過網絡,將所述初始更新,最后的一個定期更新標識符,以及最后的一個事務處理標識符發送到遠程數據庫。
18.如權利要求17所述的系統,其中發送所述初始更新包括將最后的定期更新標識符與最后的定期更新相關聯;以及將最后的事務處理標識符與最后的事務處理相關聯。
19.如權利要求17所述的系統,其中一定數量的定期更新按規則或不規則的時間間隔來生成。
20.如權利要求17所述的系統,其中初始更新生成的起始時刻與定期更新生成的起始時刻相同。
21.如權利要求17所述的系統,其中初始更新生成的起始時刻在定期更新生成的起始時刻之后。
22.如權利要求17所述的系統,其中一個定期更新包括一定數量的事務處理,其中每一個事務處理具有一個唯一的事務處理標識符。
23.一種通過網絡更新遠程數據庫的系統,由下列構成至少一個與網絡連接的處理器;以及一個與處理器連接的存儲器,所述存儲器包括一個遠程數據庫和所編寫的指令,由處理器執行來用于完成一種通過網絡更新遠程數據庫的方法,該方法由下列步驟構成通過網絡接收基于本地數據庫所增加的變化生成一定數量定期更新,其中每一個定期更新包括至少一個事務處理;通過網絡接收一個初始更新,其包括本地數據庫在起始時刻的版本,從所述初始更新中讀取最后定期更新標識符;從所述初始更新中讀取最后的一個事務處理標識符,從最后的定期更新標識符確定最后的一個定期更新,所述確定最后的定期更新是基于起始時刻進行的,從最后的事務處理標識符中確定最后的一個事務處理,所述確定最后的事務處理是基于起始時刻進行的,將在最后事務處理之后生成的事物應用于遠程數據庫,以及將在最后定期更新之后生成的定期更新應用于遠程數據庫。
24.如權利要求23所述的系統,進一步包括丟棄在初始更新的起始時刻之前生成的定期更新。
25.如權利要求23所述的系統,其中一定數量的定期更新是按固定的時間間隔接收。
26.如權利要求23所述的系統,其中的一定數量定期更新是按固定的時間間隔成批接收。
27.如權利要求23所述的系統,其中的定期更新包括一定數量的事務處理,其中每一個事務處理具有一個唯一的事務處理標識符。
28.一種機器可讀媒體,包括編寫的程序指令,由處理器執行來用于完成一種通過網絡更新遠程數據庫的方法,該方法由下列步驟構成基于本地數據庫所增加的變化生成一定數量的定期更新,其中每一個定期更新包括至少一個事務處理;通過網絡將一定數量的定期更新發送到遠程數據庫;以及在生成一定數量定期更新的同時,生成一個初始更新,包括本地數據庫在起始時刻的版本,基于一個起始時刻,確定一定數量的定期更新中的最后的一個定期更新,基于所述起始時刻,確定一個最后的事務處理,將最后的定期更新標識符與最后的定期更新相關聯,將最后的事務處理標識符與最后的事務處理相關聯,以及通過網絡,將所述初始更新,最后的一個定期更新標識符,以及最后的一個事務處理標識符發送到遠程數據庫。
29.一種機器可讀媒體,包括編寫的程序指令,由處理器執行來用于完成一種通過網絡更新遠程數據庫的方法,該方法由下列步驟構成通過網絡接收基于本地數據庫所增加的變化生成一定數量定期更新,其中每一個定期更新包括至少一個事務處理;通過網絡接收一個初始更新,其包括本地數據庫在起始時刻的版本;從所述初始更新中讀取最后的一個定期更新從所述初始更新中讀取最后的一個事務處理標識符;從最后的定期更新標識符確定最后的一個定期更新,所述確定最后的定期更新是基于起始時刻進行的,從最后的事務處理標識符中確定最后的一個事務處理,所述確定最后的事務處理是基于起始時刻進行的,將在最后事務處理之后生成的事物應用于遠程數據庫,以及將在最后定期更新之后生成的定期更新應用于遠程數據庫。
30.一種通過網絡更新遠程數據庫的方法,由下列步驟構成基于本地數據庫所增加的變化生成一定數量的定期更新,其中每個定期更新包括至少一個事務處理;生成一個初始更新,其包括本地數據庫在起始時刻的版本;以及將初始更新與定期更新相關聯,將更新標識符與在起始時刻之前生成的最后定期更新相關聯,以及將事務處理標識符與在起始時刻之前提交的最后事務處理相關聯。
31.如權利要求30所述的方法,其中的定期更新包括對一個域名服務器的更新。
32.如權利要求30所述的方法,其中的更新標識符與對域名服務器的最后更新相關聯。
33.如權利要求30所述的方法,其中的事務處理標識符與向域名服務器最后提交的事務處理相關聯。
34.一種更新生成器,由下列構成基于本地數據庫所增加的變化生成一定數量的定期更新,其中每個定期更新包括至少一個事務處理的裝置;以及生成一個包括本地數據庫在起始時刻的版本的初始更新,將更新標識符與在起始時刻之前生成的最后定期更新相關聯,以及將事務處理標識符與在起始時刻之前提交的最后事務處理相關聯的裝置。
全文摘要
一種通過網絡更新遠程數據庫(210)的方法和系統。基于本地數據庫(200)所增加的變化,生成一定數量的的定期更新,稱為發送文件(300-F)。每個定期更新包括至少一個事務處理。生成一個初始更新,包括本地數據庫在起始時刻的版本,稱為初始發送文件。另外,生成一個與起始時刻之前最后的周期更新相關聯的標識符,以及一個與起始時刻之前最后所提交的事務處理相關聯的標識符。
文檔編號G06FGK1610902SQ02826620
公開日2005年4月27日 申請日期2002年11月1日 優先權日2001年11月1日
發明者A·N·巴洛, W·F·小哈沃斯, B·T·麥克米倫 申請人:弗里塞恩公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1