欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種分布式存儲(chǔ)系統(tǒng)及其方法

文檔序號(hào):6608030閱讀:219來源:國知局
專利名稱:一種分布式存儲(chǔ)系統(tǒng)及其方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種分布式存儲(chǔ)系統(tǒng)及其方法。
背景技術(shù)
隨著傳統(tǒng)的數(shù)據(jù)庫技術(shù)日趨成熟、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和應(yīng)用范圍的擴(kuò) 充,數(shù)據(jù)庫應(yīng)用已經(jīng)普遍建立于計(jì)算機(jī)網(wǎng)絡(luò)之上。這時(shí)集中式數(shù)據(jù)庫系統(tǒng)表現(xiàn)出它的不足 數(shù)據(jù)按實(shí)際需要已在網(wǎng)絡(luò)上分布存儲(chǔ),再采用集中式處理,勢(shì)必造成通信開銷大;應(yīng)用程序 集中在一臺(tái)計(jì)算機(jī)上運(yùn)行,一旦該計(jì)算機(jī)發(fā)生故障,則整個(gè)系統(tǒng)受到影響,可靠性不高。在 這種形勢(shì)下,“集中計(jì)算”概念向“分布計(jì)算”概念發(fā)展。分布式數(shù)據(jù)庫系統(tǒng)(DDBS)包含分布式數(shù)據(jù)庫管理系統(tǒng)(DDBMS)和分布式數(shù)據(jù)庫 (DDB)。在分布式數(shù)據(jù)庫系統(tǒng)中,一個(gè)應(yīng)用程序可以對(duì)數(shù)據(jù)庫進(jìn)行透明操作,數(shù)據(jù)庫中的數(shù) 據(jù)分別在不同的局部數(shù)據(jù)庫中存儲(chǔ)、由不同的DBMS進(jìn)行管理、在不同的機(jī)器上運(yùn)行、由不 同的操作系統(tǒng)支持、被不同的通信網(wǎng)絡(luò)連接在一起。一個(gè)分布式數(shù)據(jù)庫在邏輯上是一個(gè)統(tǒng)一的整體,在物理上則是分別存儲(chǔ)在不同的 物理節(jié)點(diǎn)上。一個(gè)應(yīng)用程序通過網(wǎng)絡(luò)的連接可以訪問分布在不同地理位置的數(shù)據(jù)庫。它的 分布性表現(xiàn)在數(shù)據(jù)庫中的數(shù)據(jù)不是存儲(chǔ)在同一場(chǎng)地。更確切地講,不存儲(chǔ)在同一計(jì)算機(jī)的 存儲(chǔ)設(shè)備上。這就是與集中式數(shù)據(jù)庫的區(qū)別。從用戶的角度看,一個(gè)分布式數(shù)據(jù)庫系統(tǒng)在 邏輯上和集中式數(shù)據(jù)庫系統(tǒng)一樣,用戶可以在任何一個(gè)場(chǎng)地執(zhí)行全局應(yīng)用。就好那些數(shù)據(jù) 是存儲(chǔ)在同一臺(tái)計(jì)算機(jī)上,有單個(gè)數(shù)據(jù)庫管理系統(tǒng)(DBMS)管理一樣,用戶并沒有什么感覺 不一樣。分布式數(shù)據(jù)庫系統(tǒng)是在集中式數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)上發(fā)展起來的,是計(jì)算機(jī)技術(shù)和 網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫系統(tǒng)適合于單位分散的部門,允許各個(gè)部門將其常用 的數(shù)據(jù)存儲(chǔ)在本地,實(shí)施就地存放本地使用,從而提高響應(yīng)速度,降低通信費(fèi)用。分布式數(shù) 據(jù)庫系統(tǒng)與集中式數(shù)據(jù)庫系統(tǒng)相比具有可擴(kuò)展性,通過增加適當(dāng)?shù)臄?shù)據(jù)冗余,提高系統(tǒng)的 可靠性。在集中式數(shù)據(jù)庫中,盡量減少冗余度是系統(tǒng)目標(biāo)之一.其原因是,冗余數(shù)據(jù)浪費(fèi)存 儲(chǔ)空間,而且容易造成各副本之間的不一致性.而為了保證數(shù)據(jù)的一致性,系統(tǒng)要付出一定 的維護(hù)代價(jià).減少冗余度的目標(biāo)是用數(shù)據(jù)共享來達(dá)到的。而在分布式數(shù)據(jù)庫中卻希望增加 冗余數(shù)據(jù),在不同的場(chǎng)地存儲(chǔ)同一數(shù)據(jù)的多個(gè)副本,其原因是①.提高系統(tǒng)的可靠性、可 用性當(dāng)某一場(chǎng)地出現(xiàn)故障時(shí),系統(tǒng)可以對(duì)另一場(chǎng)地上的相同副本進(jìn)行操作,不會(huì)因一處故 障而造成整個(gè)系統(tǒng)的癱瘓。②.提高系統(tǒng)性能系統(tǒng)可以根據(jù)距離選擇離用戶最近的數(shù)據(jù)副 本進(jìn)行操作,減少通信代價(jià),改善整個(gè)系統(tǒng)的性能。分布式數(shù)據(jù)庫系統(tǒng)的目標(biāo),也就是研制分布式數(shù)據(jù)庫系統(tǒng)的目的、動(dòng)機(jī),主要包括 技術(shù)和組織兩方面的目標(biāo)。首先是提高系統(tǒng)的可靠性和可用性。改善系統(tǒng)的可靠性和可用 性是分布式數(shù)據(jù)庫的主要目標(biāo),將數(shù)據(jù)分布于多個(gè)場(chǎng)地,并增加適當(dāng)?shù)娜哂喽瓤梢蕴峁└?好的可靠性。一些可靠性要求較高的系統(tǒng),這一點(diǎn)尤其重要.因?yàn)橐粋€(gè)地出了故障不會(huì)引 起整個(gè)系統(tǒng)崩潰。因?yàn)楣收蠄?chǎng)地的用戶可以通過其它場(chǎng)地進(jìn)入系統(tǒng),而其它場(chǎng)地的用戶可以由系統(tǒng)自動(dòng)選擇存取路徑,避開故障場(chǎng)地,利用其它數(shù)據(jù)副本執(zhí)行操作,不影響業(yè)務(wù)的正 常運(yùn)行。第二是充分利用數(shù)據(jù)庫資源。當(dāng)在一個(gè)大企業(yè)或大部門中已建成了若干個(gè)數(shù)據(jù)庫 之后,為了利用相互的資源,為了開發(fā)全局應(yīng)用,就要研制分布式數(shù)據(jù)庫系統(tǒng)。這種情況可 稱為自底向上的建立分布式系統(tǒng),這種方法雖然也要對(duì)各現(xiàn)存的局部數(shù)據(jù)庫系統(tǒng)做某些改 動(dòng)、重構(gòu),但比起把這些數(shù)據(jù)庫集中起來重建一個(gè)集中式數(shù)據(jù)庫,則無論從經(jīng)濟(jì)上還是從組 織上考慮,分布式數(shù)據(jù)庫均是較好的選擇。第三,逐步擴(kuò)展處理能力和系統(tǒng)規(guī)模。當(dāng)一個(gè)單 位規(guī)模擴(kuò)大要增加新的部門(如銀行系統(tǒng)增加新的分行,工廠增加新的科室、車間)時(shí),分 布式數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)為擴(kuò)展系統(tǒng)的處理能力提供了較好的途徑在分布式數(shù)據(jù)庫系統(tǒng)中 增加一個(gè)新的結(jié)點(diǎn).這樣做比在集中式系統(tǒng)中擴(kuò)大系統(tǒng)規(guī)模要方便、靈活、經(jīng)濟(jì)得多。在集 中式系統(tǒng)中為了擴(kuò)大規(guī)模常用的方法有兩種一種是在開始設(shè)計(jì)時(shí)留有較大的余地.這容 易造成浪費(fèi),而且由于預(yù)測(cè)困難,設(shè)計(jì)結(jié)果仍可能不適應(yīng)情況的變化。另一種方法是系統(tǒng)升 級(jí),這會(huì)影響現(xiàn)有應(yīng)用的正常運(yùn)行.并且當(dāng)升級(jí)涉及不兼容的硬件或系統(tǒng)軟件有了重大修 改而要相應(yīng)地修改已開發(fā)的應(yīng)用軟件時(shí),升級(jí)的代價(jià)就十分昂貴而常常使得升級(jí)的方法不 可行。分布式數(shù)據(jù)庫系統(tǒng)能方便地把一個(gè)新的結(jié)點(diǎn)納入系統(tǒng),不影響現(xiàn)有系統(tǒng)的結(jié)構(gòu)和系 統(tǒng)的正常運(yùn)行,提供了逐漸擴(kuò)展系統(tǒng)能力的較好途徑,有時(shí)甚至是唯一的途徑。

發(fā)明內(nèi)容
為了解決集中計(jì)算存在的問題,本發(fā)明提供了一種分布式存儲(chǔ)系統(tǒng)及其方法。一種分布式存儲(chǔ)系統(tǒng),其特征在于,支持海量數(shù)據(jù)存儲(chǔ),支持大尺寸數(shù)據(jù)文件,負(fù) 載分擔(dān)均衡,可靠、能容忍系統(tǒng)局部失效,所述系統(tǒng)包括
應(yīng)用客戶端Application Client,它通過封裝實(shí)現(xiàn)好的客戶端應(yīng)用接口 ClientAPI 訪問名址服務(wù)器NameNode和數(shù)據(jù)節(jié)點(diǎn)DataNode, ClientAPI對(duì)協(xié)議實(shí)現(xiàn)封裝,通過該 ClientAPI可讀、寫、查詢文件;
名址服務(wù)器NameNode,它是系統(tǒng)的中心服務(wù)器,存儲(chǔ)著整個(gè)系統(tǒng)的元數(shù)據(jù),負(fù)責(zé)整個(gè)系 統(tǒng)的調(diào)度;
數(shù)據(jù)節(jié)點(diǎn)DataNode,它是數(shù)據(jù)實(shí)際存儲(chǔ)的地方,眾多DataNode集群起來構(gòu)建存儲(chǔ)系
統(tǒng);
每個(gè)DataNode上運(yùn)行DataNode服務(wù)程序,自動(dòng)與NameNode通訊,NameNode將 DataNode的IP以及基本的容量信息記錄入其IP列表信息,使系統(tǒng)具有易拓展性。一種根據(jù)權(quán)利要求1所述的分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)方法,其特征在于,所述方法 包含以下步驟
a、ApplicationClient上傳數(shù)據(jù)時(shí),將數(shù)據(jù)文件分割為若干Block,每個(gè)Block包括一 個(gè)摘要,每個(gè)摘要是該摘要所在的Block數(shù)據(jù)正確與否的原始依據(jù);
b、在寫入數(shù)據(jù)時(shí),在系統(tǒng)中創(chuàng)建一個(gè)文件,文件的ID由NameNode分配,所述文件ID記 錄文件的元數(shù)據(jù),在寫入操作沒有完成時(shí),對(duì)文件添加“沒有完成”標(biāo)識(shí),并且這個(gè)文件對(duì)所 有的其它Client端是不可視,即不納入用戶視圖;當(dāng)文件的所有Block寫入DataNode后, 才把該標(biāo)識(shí)置為“完成”。若寫入操作不成功,Client向NameNode發(fā)出刪除該文件的請(qǐng)求, DataNode系統(tǒng)也會(huì)把這些Block當(dāng)垃圾回收,保證了數(shù)據(jù)一致性。讀取文件時(shí),先從NameNode獲得文件的元數(shù)據(jù),包括每個(gè)Block的摘要信息,再從每個(gè)DataNode上獲得Block數(shù)據(jù),并計(jì)算出其摘要信息,對(duì)比摘要信息進(jìn)行數(shù)據(jù)完整性驗(yàn) 證;
優(yōu)選的,為了提高系統(tǒng)的健壯性,所述Application Client上傳數(shù)據(jù)時(shí),所述Block儲(chǔ) 存為多副本,每個(gè)Block副本存儲(chǔ)在不同的DataNode上。優(yōu)選的,所述儲(chǔ)存Block副本的DataNode分布在不同的網(wǎng)域。例如DataNode不 會(huì)接入同一個(gè)機(jī)架、交換機(jī)甚至同一個(gè)路由器。更加優(yōu)化的,系統(tǒng)周期性檢查每個(gè)Block的副本數(shù)量,當(dāng)檢查到Block副本低于設(shè) 定個(gè)數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)復(fù)制該Block副本到其它不同的DataNode上,并始終保持Block副 本數(shù)量達(dá)到設(shè)定個(gè)數(shù)。若有一個(gè)DataNode退出服務(wù),系統(tǒng)會(huì)迅速彌補(bǔ)并恢復(fù)正常。本發(fā)明的優(yōu)點(diǎn)在于系統(tǒng)模型簡(jiǎn)單,并支持海量數(shù)據(jù)存儲(chǔ),支持大尺寸數(shù)據(jù)文件, 負(fù)載分擔(dān)均衡,可靠、能容忍系統(tǒng)局部失效,包括硬件或系統(tǒng)軟件錯(cuò)誤,不會(huì)導(dǎo)致系統(tǒng)服務(wù) 的終止和數(shù)據(jù)的丟失,易擴(kuò)展。


圖1為本發(fā)明的總體架構(gòu)圖。
具體實(shí)施例方式有關(guān)本發(fā)明的技術(shù)內(nèi)容及詳細(xì)說明,說明如下
本發(fā)明提供一種廉價(jià)系統(tǒng),并支持海量數(shù)據(jù)存儲(chǔ),支持大尺寸數(shù)據(jù)文件,負(fù)載分擔(dān)(均 衡),可靠、能容忍系統(tǒng)局部失效(硬件或系統(tǒng)軟件錯(cuò)誤),不會(huì)導(dǎo)致系統(tǒng)服務(wù)的終止和數(shù)據(jù) 的丟失,易擴(kuò)展。本發(fā)明還公開了一種分布式存儲(chǔ)的方法,使得該存儲(chǔ)系統(tǒng)從數(shù)據(jù)完整性、 數(shù)據(jù)一致性、易拓展性以及健壯性得以保證。如圖1所示,所述系統(tǒng)包括應(yīng)用客戶端Application Client,它通過封裝實(shí)現(xiàn)好 的客戶端應(yīng)用接口 ClientAPI訪問名址服務(wù)器NameNode和數(shù)據(jù)節(jié)點(diǎn)DataNode,ClientAPI 對(duì)協(xié)議實(shí)現(xiàn)封裝,通過該ClientAPI可讀、寫、查詢文件;
名址服務(wù)器NameNode,它是系統(tǒng)的中心服務(wù)器,存儲(chǔ)著整個(gè)系統(tǒng)的元數(shù)據(jù),負(fù)責(zé)整個(gè)系 統(tǒng)的調(diào)度;
數(shù)據(jù)節(jié)點(diǎn)DataNode,它是數(shù)據(jù)實(shí)際存儲(chǔ)的地方,眾多DataNode集群起來構(gòu)建存儲(chǔ)系 統(tǒng);如圖 1 中所示的 DataNode A、DataNode B、DataNode C、DataNode X。每個(gè)DataNode上運(yùn)行DataNode服務(wù)程序,自動(dòng)與NameNode通訊,NameNode將 DataNode的IP以及基本的容量信息記錄入其IP列表信息,使系統(tǒng)具有易拓展性。分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)方法,包含以下步驟
Application Client上傳數(shù)據(jù)時(shí),將數(shù)據(jù)文件分割為若干塊Block,每個(gè)Block包括一 個(gè)摘要,每個(gè)摘要是該摘要所在的Block數(shù)據(jù)正確與否的原始依據(jù);
在寫入數(shù)據(jù)時(shí),在系統(tǒng)中創(chuàng)建一個(gè)文件,文件的ID由NameNode分配,所述文件ID記錄 文件的元數(shù)據(jù),在寫入操作沒有完成時(shí),對(duì)文件添加“沒有完成”標(biāo)識(shí),并且這個(gè)文件對(duì)所有 的其它Client端是不可視,即不納入用戶視圖;當(dāng)文件的所有Block寫入DataNode后,才 把該標(biāo)識(shí)置為“完成”。若寫入操作不成功,Client向NameNode發(fā)出刪除該文件的請(qǐng)求, DataNode系統(tǒng)也會(huì)把這些Block當(dāng)垃圾回收,保證了數(shù)據(jù)一致性。
5
讀取文件時(shí),先從NameNode獲得文件的元數(shù)據(jù),包括每個(gè)Block的摘要信息,再從 每個(gè)DataNode上獲得Block數(shù)據(jù),并計(jì)算出其摘要信息,對(duì)比摘要信息進(jìn)行數(shù)據(jù)完整性驗(yàn) 證;
為了提高系統(tǒng)的健壯性,Application Client上傳數(shù)據(jù)時(shí),塊Block儲(chǔ)存為3個(gè)多副 本,每個(gè) Block 畐Ij本存儲(chǔ)在不同的 DataNode A、DataNode B、DataNode C 上。DataNode A、DataNode B、DataNode C分布在不同的網(wǎng)域。例如接入在不同的機(jī) 架或交換機(jī)或路由器上。系統(tǒng)周期性檢查每個(gè)Block的副本數(shù)量,當(dāng)檢查到Block副本低于設(shè)定個(gè)數(shù)時(shí),系 統(tǒng)會(huì)自動(dòng)復(fù)制該Block副本到其它不同的DataNode上,并始終保持Block副本數(shù)量達(dá)到設(shè) 定個(gè)數(shù)。若有一個(gè)DataNode退出服務(wù),系統(tǒng)會(huì)迅速彌補(bǔ)并恢復(fù)正常。本發(fā)明的優(yōu)點(diǎn)在于系統(tǒng)模型簡(jiǎn)單,并支持海量數(shù)據(jù)存儲(chǔ),支持大尺寸數(shù)據(jù)文件, 負(fù)載分擔(dān)均衡,可靠、能容忍系統(tǒng)局部失效,包括硬件或系統(tǒng)軟件錯(cuò)誤,不會(huì)導(dǎo)致系統(tǒng)服務(wù) 的終止和數(shù)據(jù)的丟失,易擴(kuò)展。
權(quán)利要求
一種分布式存儲(chǔ)系統(tǒng),其特征在于,所述系統(tǒng)包括應(yīng)用客戶端Application Client,它通過封裝實(shí)現(xiàn)好的客戶端應(yīng)用接口ClientAPI訪問名址服務(wù)器NameNode和數(shù)據(jù)節(jié)點(diǎn)DataNode,ClientAPI對(duì)協(xié)議實(shí)現(xiàn)封裝,通過該ClientAPI可讀、寫、查詢文件;名址服務(wù)器NameNode,它是系統(tǒng)的中心服務(wù)器,存儲(chǔ)著整個(gè)系統(tǒng)的元數(shù)據(jù),負(fù)責(zé)整個(gè)系統(tǒng)的調(diào)度;數(shù)據(jù)節(jié)點(diǎn)DataNode,它是數(shù)據(jù)實(shí)際存儲(chǔ)的地方,眾多DataNode集群起來構(gòu)建存儲(chǔ)系統(tǒng);每個(gè)DataNode上運(yùn)行DataNode服務(wù)程序,自動(dòng)與NameNode通訊,NameNode將DataNode的IP以及基本的容量信息記錄入其IP列表信息。
2.一種根據(jù)權(quán)利要求1所述的分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)方法,其特征在于,a、ApplicationClient上傳數(shù)據(jù)時(shí),將數(shù)據(jù)文件分割為若干個(gè)塊Block,每個(gè)Block包 括一個(gè)摘要,每個(gè)摘要是該摘要所在的Block數(shù)據(jù)正確與否的原始依據(jù);b、在寫入數(shù)據(jù)時(shí),在系統(tǒng)中創(chuàng)建一個(gè)文件,文件的ID由NameNode分配,所述文件ID記 錄文件的元數(shù)據(jù),在寫入操作沒有完成時(shí),對(duì)文件添加“沒有完成”標(biāo)識(shí),并且這個(gè)文件對(duì)所 有的其它Client端是不可視,即不納入用戶視圖;當(dāng)文件的所有Block寫入DataNode后, 才把該標(biāo)識(shí)置為“完成”,若寫入操作不成功,Client向NameNode發(fā)出刪除該文件的請(qǐng)求, DataNode系統(tǒng)也會(huì)把這些Block當(dāng)垃圾回收;C、讀取文件時(shí),先從NameNode獲得文件的元數(shù)據(jù),包括每個(gè)Block的摘要信息,再從每 個(gè)DataNode上獲得Block數(shù)據(jù),并計(jì)算出其摘要信息,對(duì)比摘要信息進(jìn)行數(shù)據(jù)完整性驗(yàn)證。
3.一種根據(jù)權(quán)利要求2所述的分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)方法,其特征在于,所述 Application Client上傳數(shù)據(jù)時(shí),所述Block儲(chǔ)存為多副本,每個(gè)Block副本存儲(chǔ)在不同的 DataNode 上。
4.一種根據(jù)權(quán)利要求3所述的分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)方法,其特征在于,所述儲(chǔ)存 Block副本的DataNode分布在不同的網(wǎng)域。
5.一種根據(jù)權(quán)利要求3或4所述的分布式存儲(chǔ)系統(tǒng)的存儲(chǔ)方法,其特征在于,系統(tǒng)周 期性檢查每個(gè)Block的副本數(shù)量,當(dāng)檢查到Block副本低于設(shè)定個(gè)數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)復(fù)制該 Block副本到其它不同的DataNode上,并始終保持Block副本數(shù)量達(dá)到設(shè)定個(gè)數(shù)。
全文摘要
本發(fā)明公布了一種分布式存儲(chǔ)系統(tǒng),并支持海量數(shù)據(jù)存儲(chǔ)。所述系統(tǒng)包括ApplicationClient,它通過封裝實(shí)現(xiàn)好的ClientAPI訪問NameNode和DataNode,ClientAPI是對(duì)協(xié)議實(shí)現(xiàn)封裝,通過該ClientAPI可讀、寫、查詢文件;NameNode,它是系統(tǒng)的中心服務(wù)器,存儲(chǔ)著整個(gè)系統(tǒng)的元數(shù)據(jù),負(fù)責(zé)整個(gè)系統(tǒng)的調(diào)度;DataNode,它是數(shù)據(jù)實(shí)際存儲(chǔ)的地方,眾多DataNode集群起來構(gòu)建存儲(chǔ)系統(tǒng)。本發(fā)明還公開了一種分布式存儲(chǔ)的方法,使得該存儲(chǔ)系統(tǒng)從數(shù)據(jù)完整性、數(shù)據(jù)一致性、易拓展性以及健壯性得以保證。
文檔編號(hào)G06F17/30GK101901275SQ20101025940
公開日2010年12月1日 申請(qǐng)日期2010年8月23日 優(yōu)先權(quán)日2010年8月23日
發(fā)明者朱好好, 王芙蓉 申請(qǐng)人:華中科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
疏勒县| 唐海县| 旌德县| 青岛市| 镇远县| 渭源县| 芷江| 岫岩| 诸暨市| 盖州市| 全州县| 余干县| 盐边县| 河源市| 哈巴河县| 民权县| 芜湖县| 承德县| 萨迦县| 台中市| 镇雄县| 建平县| 达日县| 广德县| 精河县| 广州市| 宣威市| 中西区| 万荣县| 吕梁市| 大埔县| 永康市| 柳河县| 衡阳市| 闸北区| 日喀则市| 石渠县| 怀宁县| 织金县| 辉县市| 穆棱市|