版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
多數(shù)據(jù)庫系統(tǒng)互聯(lián)機制的設計與實現(xiàn)
摘要:隨著企業(yè)規(guī)模的不斷擴大,各部門所需信息既相互交錯,又相對獨立。這就要求各部門所用的數(shù)據(jù)庫既能高度自治地工作,又能進行信息共享。本文主要介紹多dm3數(shù)據(jù)庫系統(tǒng)間的信息共享機制。不同dm3數(shù)據(jù)庫系統(tǒng)間的信息共享通過協(xié)調器實現(xiàn)。所有這些被協(xié)調器連接在一起的數(shù)據(jù)庫系統(tǒng)組成了一個聯(lián)邦數(shù)據(jù)庫。這樣既能較好地滿足企業(yè)的需要,也能在保證效率的前提下,提高數(shù)據(jù)的可用性。關鍵詞:dbms復制聯(lián)邦數(shù)據(jù)庫1.引言隨著經濟的發(fā)展,企業(yè)的規(guī)模越來越大,其積累的信息也越來越多。存在著各部門所處理的信息多數(shù)只對本部門有效,僅有少數(shù)信息需給其它某些部門共享的問題。這種信息的分布性和獨立性要求對所處理的數(shù)據(jù)進行分類,使各部門既能獨立地處理本部門大多數(shù)數(shù)據(jù),也使部門間能協(xié)調處理跨部門的事務。在這種情況下,對整個企業(yè)建立一個完全的緊密耦合的分布式數(shù)據(jù)庫是很困難的,也是沒必要的,特別是大型企業(yè),這樣的數(shù)據(jù)庫的效率往往是很低的。為解決這個問題,我們采用以下策略:每個部門使用一套緊密耦合的數(shù)據(jù)庫系統(tǒng),而在存在跨部門事務處理的數(shù)據(jù)庫系統(tǒng)間用一個協(xié)調器聯(lián)起來。這樣就組成了一個橫跨整個企業(yè),各部門高度自治的聯(lián)邦數(shù)據(jù)庫系統(tǒng)。dm2是由華中理工大學數(shù)據(jù)庫多媒體技術研究所研制的數(shù)據(jù)庫管理系統(tǒng)。它采用客戶/服務器模型,客戶機與服務器,服務器與服務器均通過網絡互連,通過消息相互通訊,組成一個緊密耦合的分布式數(shù)據(jù)庫系統(tǒng)。它的工作流程如下:客戶機登錄到一臺服務器上,這臺服務器便成為它的代理服務器;它接收來自客戶機的消息,然后根據(jù)全局數(shù)據(jù)字典決定是自己獨立完成該操作,還是與其它服務器協(xié)作處理這條消息,處理完成之后,再由代理服務器將處理結果返回給客戶機。而數(shù)據(jù)字典,作為記錄數(shù)據(jù)庫所有元數(shù)據(jù)的系統(tǒng)表,它向以上過程中提供各類有用的信息,引導它們向正確的方向運行,起著“指南針”的作用。它分為局部數(shù)據(jù)字典和全局數(shù)據(jù)字典。其中,局部數(shù)據(jù)字典用于記錄一個服務器站點中數(shù)據(jù)庫的控制信息,如表的模式,視圖的模式及各個數(shù)據(jù)區(qū)的的文件名等信息。全局數(shù)據(jù)字典用于記錄分布式數(shù)據(jù)庫系統(tǒng)中各個服務器站點上有關全局數(shù)據(jù)的控制信息,如服務器站點信息,各服務器站點的全局表名及表內碼記錄,各服務器站點上的全局數(shù)據(jù)視圖名及視圖內碼記錄,用戶名及口令記錄,用戶權限記錄等信息。各個局部數(shù)據(jù)字典可以各不相同,但為了保證在各個服務器上所看到的全局數(shù)據(jù)庫是一致的,因此,全局數(shù)據(jù)字典必須一致。我們所關心的是全局數(shù)據(jù)字典中的基表控制塊tv_ctrl_block,它的內容主要包括:全局基表總數(shù),每個全局基表名和其對應的表內碼,該基表所在的服務器站點的編號等信息。它的功能是將各個服務器站點號與存儲在其上的表名及表內碼聯(lián)系起來。這樣,代理服務器從客戶消息中找到被處理的表名,然后通過查詢基表控制塊tv_ctrl_block,就能知道該表存在哪個服務器上,以便將相關消息發(fā)給該服務器。由于dm2上各個服務器站點的全局字典完全相同,任何全局表的信息都會記入全局字典。若用它來構建一個企業(yè)的數(shù)據(jù)庫系統(tǒng),則大量只對企業(yè)某部門有用的信息將會充斥在各部門所有服務器的全局字典中,增加了冗余。而且,當對全局表進行ddl操作時,為了確保全局字典的一致性,須對所有服務器的全局字典進行加鎖。dm2對全局字典的封鎖方式是采用令牌環(huán)方式,即令牌繞虛環(huán)(非實環(huán))傳輸,某個服務器想對全局字典進行操作,必須等令牌到達該服務器才可以執(zhí)行。每個部門建立的全局表絕大多數(shù)只對本部門有用,當對這些表進行ddl操作時,卻要對所有服務器的全局字典進行封鎖,通過令牌來實現(xiàn)對全局字典的互斥訪問。假如,兩個部門都要分別對本部門的內部表進行ddl操作,這應該是可以并行處理的操作,現(xiàn)在卻只能串行執(zhí)行。而且,當服務器數(shù)目龐大時,每個服務器等待令牌的時間將會很長。這嚴重損害了數(shù)據(jù)庫的效率。為彌補以上不足,在dm2的改進版本dm3中增加了協(xié)調器,用以聯(lián)接各個獨立的dm3數(shù)據(jù)庫子系統(tǒng),并協(xié)調各子系統(tǒng)間的各種關系,使各子系統(tǒng)既能高度自治地工作,又能進行有效的信息共享。2.體系結構本系統(tǒng)可看作多個數(shù)據(jù)庫子系統(tǒng)被協(xié)調器聯(lián)起來的,高度自治的一個聯(lián)邦數(shù)據(jù)庫系統(tǒng)。其中,每個子系統(tǒng)獨立處理本系統(tǒng)內部的事務,而子系統(tǒng)間的信息共享由復制技術提供,副本間的一致性由協(xié)調器協(xié)調處理,處理所需的信息在初始化時寫入協(xié)調器的組間數(shù)據(jù)字典中。當對某子系統(tǒng)中的一份數(shù)據(jù)副本進行修改時,該子系統(tǒng)會將修改通知協(xié)調器,由協(xié)調器對該數(shù)據(jù)的其它副本進行修改,從而保證了所有副本的一致性。由以上可知,子系統(tǒng)彼此并不直接接觸,而是各自都與協(xié)調器直接相聯(lián),由協(xié)調器統(tǒng)一管理子系統(tǒng)間的通信。這樣,當子系統(tǒng)對副本進行修改時,不必關心相應的子系統(tǒng)處于何種狀態(tài),也不必等待回應消息,以及異常處理,所有這些都由協(xié)調器進行管理。因此,既提高了系統(tǒng)運行的效率,也保證了子系統(tǒng)的獨立性。其體系結構如下圖所示。協(xié)調器主要有三大功能,首先,它對協(xié)調器和服務器進行初始化,并將有關信息存入組間字典;其次,它管理不同子系統(tǒng)間的通信,維護副本的一致性;最后,它在子系統(tǒng)出現(xiàn)崩潰時,進行異常管理及恢復工作。dm3多數(shù)據(jù)庫系統(tǒng)體系結構3.主要策略多個dm3系統(tǒng)間的信息共享是通過副本實現(xiàn)的,副本的一致性是由協(xié)調器來維持的,是一種弱一致性。通常,多數(shù)據(jù)庫系統(tǒng)間的一致性是通過協(xié)調器周期性地訪問服務器的日志來完成的。由于副本的更新帶有隨機性,因此,若采用這種方法,可能數(shù)據(jù)被修改多次,但其相對應的副本仍未被修改,這樣就損害了數(shù)據(jù)的一致性;也可能數(shù)據(jù)并未被修改,但協(xié)調器已多次訪問了服務器的日志了,這樣就降低了系統(tǒng)的效率。所以,本系統(tǒng)采用的方法是當數(shù)據(jù)被修改時,由服務器通知協(xié)調器有關信息,再由協(xié)調器通知相關系統(tǒng),修改相關數(shù)據(jù)。這樣,數(shù)據(jù)的修改及時(仍然是弱一致性),而協(xié)調器也不會在數(shù)據(jù)未被修改的情況下訪問服務器,提高了準確性。為了使協(xié)調器正常工作,我們對底層數(shù)據(jù)庫管理系統(tǒng)dm2進行了修改。在基表控制塊tv_ctrl_block中增加一項isreplication。建表時,該項初始化為false;當為該表建立一個副本時,該項賦值為true。具體算法如下。3.1初始化算法。協(xié)調器:從用戶或應用程序接收待連接的兩個系統(tǒng)中的服務器名,需復制的表名;分別登錄到兩個系統(tǒng)的服務器上;向存有待復制表的服務器發(fā)預復制消息;等待服務器消息;若失敗,發(fā)一條失敗的消息給服務器和用戶或應用程序,轉11);若成功,從消息中取出待復制表的有關信息,根據(jù)這些信息,發(fā)一條建表消息給另一個系統(tǒng)的服務器;等待服務器消息;若失敗,發(fā)一條失敗的消息給服務器和用戶或應用程序,轉11);若成功,調數(shù)據(jù)轉移程序,進行數(shù)據(jù)復制;將有關信息寫入組間字典。退出。服務器:當服務器收到預復制消息后,將基表控制塊tv_ctrl_block中的isreplication賦為true。同時,取出待復制表的有關信息,組成應答消息發(fā)給協(xié)調器。當服務器收到失敗的消息后,將基表控制塊tv_ctrl_block中的isreplication賦為false。3.2維護算法。協(xié)調器:從組間字典讀出相關信息,根據(jù)這些信息,登錄到相應系統(tǒng)上;等待消息;從某系統(tǒng)的服務器上收到一條修改消息后,通過查找組間字典,確定該消息的目的地,然后將它轉發(fā)過去;若失敗,定時重發(fā);轉2);服務器:1)等待消息;2)當收到某客戶或應用程序的消息后,檢查它是否是修改數(shù)據(jù)的操作(如delete,update或insert等);若不是,轉7);若是,檢查基表控制塊tv_ctrl_block中的isreplication是否為true;若不是,轉7);若是,向協(xié)調器發(fā)修改消息;繼續(xù)執(zhí)行服務器程序的其它部分。3.3恢復算法。若協(xié)調器所聯(lián)接的系統(tǒng)中有一個跨掉了,則對副本的修改無法及時地反映到跨掉的系統(tǒng)中來。這時,需要恢復算法來進行處理。協(xié)調器:當協(xié)調器發(fā)現(xiàn)有一個系統(tǒng)已經崩潰后,采取以下步驟。將與該系統(tǒng)相關的變量open賦值為false;打開記時器;等待消息;若收到的消息是其它系統(tǒng)發(fā)出的修改崩潰了的系統(tǒng)上的副本的命令,則依次將這些消息存儲起來,轉3);若收到的消息是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度生態(tài)旅游場承包經營合作協(xié)議范本4篇
- 2025年度大棚農業(yè)保險合作協(xié)議3篇
- 二手房交易標準協(xié)議樣本(2024個人版)版
- 2025年度叉車租賃與租賃物租賃期限調整合同4篇
- 2025年昌月離婚協(xié)議書婚姻解除及財產清算范本4篇
- 2025年度航空航天材料質量保證協(xié)議4篇
- 2024年重慶地區(qū)標準離婚合同模板一
- 2024私募股權投資居間協(xié)議
- 專項舞臺效果策劃與實施協(xié)議版A版
- 2024年食堂運營合作協(xié)議標準文本版
- 2024解析:第三章物態(tài)變化-講核心(原卷版)
- DB32T 1590-2010 鋼管塑料大棚(單體)通 用技術要求
- 安全行車知識培訓
- 2024年安徽省高校分類對口招生考試數(shù)學試卷真題
- 第12講 語態(tài)一般現(xiàn)在時、一般過去時、一般將來時(原卷版)
- 2024年采購員年終總結
- 2024年新疆區(qū)公務員錄用考試《行測》試題及答案解析
- 肺動脈高壓的護理查房課件
- 2025屆北京巿通州區(qū)英語高三上期末綜合測試試題含解析
- 公婆贈予兒媳婦的房產協(xié)議書(2篇)
- 煤炭行業(yè)智能化煤炭篩分與洗選方案
評論
0/150
提交評論