亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于庫復(fù)制的分布式存儲方法與流程

文檔序號:12494356閱讀:275來源:國知局

本發(fā)明屬于計算機(jī)和數(shù)據(jù)庫領(lǐng)域,尤其涉及一種基于庫復(fù)制的分布式存儲方法。



背景技術(shù):

現(xiàn)在,計算機(jī)在各個領(lǐng)域都得到了深入應(yīng)用,各行各業(yè)都使用計算機(jī)來存儲和處理各種數(shù)據(jù),而數(shù)據(jù)庫是計算機(jī)領(lǐng)域中最常見的數(shù)據(jù)存儲設(shè)施,常常用來存儲重要的數(shù)據(jù)。但是,眾所周知,由于各種原因,數(shù)據(jù)庫可能會出現(xiàn)故障,甚至完全被損毀,從而導(dǎo)致數(shù)據(jù)丟失;因而現(xiàn)在在設(shè)計重要的數(shù)據(jù)庫系統(tǒng)時,通常都會考慮對數(shù)據(jù)庫進(jìn)行備份,以便在數(shù)據(jù)庫丟失數(shù)據(jù)后,可以使用備份恢復(fù)數(shù)據(jù)庫。

現(xiàn)有技術(shù)中,一種常見的方法是在異地對原數(shù)據(jù)庫進(jìn)行完全備份,一旦原數(shù)據(jù)庫損壞,則從完全備份中恢復(fù)到原數(shù)據(jù)庫,這個方式的缺點(diǎn)是在恢復(fù)時,整個系統(tǒng)需要暫停運(yùn)行,并且恢復(fù)速度很慢。另一種方法是使用多臺服務(wù)器進(jìn)行鏡像備份,如果一臺出現(xiàn)故障,則使用其他服務(wù)器進(jìn)行恢復(fù),但是,一般情況下,一臺機(jī)器對外提供的數(shù)據(jù)吞吐量是有限的,如果采用這種機(jī)器鏡像即幾臺機(jī)器上的數(shù)據(jù)完全一致的方式,修復(fù)大數(shù)據(jù)量的數(shù)據(jù)庫時耗時也會很長,如果還需要同時考慮到提供正常服務(wù),則修復(fù)的時間還會大大增加。

對于現(xiàn)有技術(shù)的上述缺點(diǎn),還沒有一種完善的解決方案。



技術(shù)實現(xiàn)要素:

為了解決現(xiàn)有技術(shù)中的上述問題,本發(fā)明提出了一種基于庫復(fù)制的分布式存儲方法。

本發(fā)明采用的技術(shù)方案如下:

一種基于庫復(fù)制的分布式存儲方法,其特征在于,該方法使用n臺存儲服務(wù)器存儲數(shù)據(jù)庫,包括以下步驟:

(1)將數(shù)據(jù)庫切分為多個子庫;

(2)設(shè)置冗余服務(wù)器的數(shù)量t;

(3)在n臺存儲服務(wù)器中任取t臺,組成一個服務(wù)器,共得到個服務(wù)器組,記這些服務(wù)器組為S1,S2,……,SK,由這些服務(wù)器組構(gòu)成一個集合S={Si,1≤i≤K}。

(4)計算每一臺存儲服務(wù)器當(dāng)前的存儲代價;

(5)對于集合S中的每個服務(wù)器組,計算服務(wù)器組的存儲代價,所述服務(wù)器組的存儲代價是該服務(wù)器組中所有存儲服務(wù)器的存儲代價之和;

(6)對集合S中的服務(wù)器組,按照服務(wù)器組的存儲代價進(jìn)行排序,將存儲代價最小的服務(wù)器組作為一個選擇組,并從集合S中刪除;

(7)重復(fù)步驟4-6,一直到獲取了m個選擇組;

(8)每個選擇組分別存儲一個子庫,即將選擇組中的每一臺存儲服務(wù)器都存儲相應(yīng)子庫的一個復(fù)制。

進(jìn)一步地,該方法還包括:

(9)對于不在任何一個選擇組中的存儲服務(wù)器,使用該存儲服務(wù)器存儲所有的子庫。

進(jìn)一步地,所述步驟(4)包括以下步驟:

(4.1)設(shè)n臺存儲服務(wù)器為A1,A2,……,An;首先計算Ai(1≤i≤n)的數(shù)據(jù)代價Di,即Di=Ti/Li;其中,Ti是存儲服務(wù)器Ai到接口服務(wù)器的傳輸延遲時間,Li是存儲服務(wù)器Ai本身的數(shù)據(jù)吞吐率;

(4.2)計算存儲服務(wù)器Ai的存儲代價Ci=FiDi,其中,F(xiàn)i是Ai在已經(jīng)獲取的選擇組中出現(xiàn)的次數(shù)。

進(jìn)一步地,所述子庫的數(shù)量不少于3個。

進(jìn)一步地,所述存儲服務(wù)器的數(shù)量n、子庫的數(shù)量m和冗余服務(wù)器的數(shù)量t,滿足n≥mt/2。

進(jìn)一步地,當(dāng)有一臺存儲服務(wù)器丟失數(shù)據(jù)時,根據(jù)該存儲服務(wù)器上所存儲的子庫,選擇相應(yīng)的存儲服務(wù)器為其恢復(fù)數(shù)據(jù)。

本發(fā)明的有益效果包括:保證了數(shù)據(jù)庫系統(tǒng)的冗余度,提高了數(shù)據(jù)的安全性,解決了數(shù)據(jù)高效自動修復(fù)的問題。

【附圖說明】

此處所說明的附圖是用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,但并不構(gòu)成對本發(fā)明的不當(dāng)限定,在附圖中:

圖1是本發(fā)明方法所應(yīng)用的系統(tǒng)結(jié)構(gòu)圖。

【具體實施方式】

下面將結(jié)合附圖以及具體實施例來詳細(xì)說明本發(fā)明,其中的示意性實施例以及說明僅用來解釋本發(fā)明,但并不作為對本發(fā)明的限定。

參見附圖1,其示出了本發(fā)明分布式存儲方法所適用的系統(tǒng)結(jié)構(gòu),該系統(tǒng)包括多臺存儲服務(wù)器,用于分布式存儲一個數(shù)據(jù)庫。所有的存儲服務(wù)器都通過網(wǎng)絡(luò)互相連接,相互之間可以互相傳輸數(shù)據(jù),同時各存儲服務(wù)器接受接口服務(wù)器的管理和調(diào)度,并通過接口服務(wù)器向外部提供數(shù)據(jù)庫服務(wù)。所述網(wǎng)絡(luò)可以是一個內(nèi)部的局域網(wǎng),使用局域網(wǎng)的優(yōu)點(diǎn)是相互之間傳輸數(shù)據(jù)快;但是,考慮到異地容災(zāi),該網(wǎng)絡(luò)也可以是廣域網(wǎng)、互聯(lián)網(wǎng)。

基于上述結(jié)構(gòu),下面詳細(xì)說明本發(fā)明的基于庫復(fù)制的分布式存儲方法:

(1)將整個數(shù)據(jù)庫切分成多個子庫。

具體的切分方式取決于數(shù)據(jù)庫內(nèi)所存儲的數(shù)據(jù),以及數(shù)據(jù)庫的組織形式。例如,可以基于數(shù)據(jù)表進(jìn)行切分,即將多個數(shù)據(jù)表構(gòu)成一個子庫;也可以根據(jù)存儲的數(shù)據(jù)量進(jìn)去切分,使得每個子庫所存儲的數(shù)據(jù)量基本相同??紤]到分布式存儲,子庫的數(shù)量可以根據(jù)具體情況所確定,但是一般不少于3個。

(2)設(shè)置冗余服務(wù)器的數(shù)量t。

所述冗余服務(wù)器的數(shù)量,指的是存儲同一個子庫的存儲服務(wù)器的數(shù)量,假設(shè)共有n臺存儲服務(wù)器,則每一個子庫都同時存儲于其中的t臺存儲服務(wù)器中,這意味著即使其中有t-1臺存儲服務(wù)器故障,憑借剩余的1臺存儲服務(wù)器,該子庫也能夠得到恢復(fù)。為了保證冗余度,一般要求t≥3。另外,優(yōu)選的,為了使得分布式存儲的優(yōu)勢更好地發(fā)揮,數(shù)據(jù)分布平均,應(yīng)當(dāng)滿足n≥mt/2,其中m是子庫的數(shù)量。

(3)在n臺存儲服務(wù)器中任取t臺,組成一個服務(wù)器組,通過排列組合,一共可以得到個服務(wù)器組,記這些服務(wù)器組為S1,S2,……,SK,那么可以獲得由這些服務(wù)器組所構(gòu)成的一個集合S={Si,1≤i≤K}。

例如,如果t=3,一共有5臺存儲服務(wù)器,則通過排列組合,服務(wù)器組一共有個,即|S|=10。這一步驟實際上給出了同一子庫的t個冗余服務(wù)器的所有可能的組合。

(4)計算每一臺存儲服務(wù)器當(dāng)前的存儲代價,具體的計算方法在后面說明。

所述存儲代價實際上是存儲服務(wù)器存儲數(shù)據(jù)子庫所要耗費(fèi)的代價,其反應(yīng)了該存儲服務(wù)器存儲數(shù)據(jù)的效率。

(5)對于集合S中的每個服務(wù)器組,計算服務(wù)器組的存儲代價,所述服務(wù)器組的存儲代價是該服務(wù)器組中所有存儲服務(wù)器的存儲代價之和。

所述存儲代價之和反映了一個子庫要存儲到該服務(wù)器所要花費(fèi)的總的存儲代價,通過該存儲代價和,可以衡量不同服務(wù)器組的優(yōu)劣。

(6)對集合S中的服務(wù)器組,按照服務(wù)器組的存儲代價進(jìn)行排序,將存儲代價最小的服務(wù)器組作為一個選擇組,并從集合S中刪除。

(7)重復(fù)步驟4-6,一直到獲取了m個選擇組。

通過步驟4-6,選出了一個相對最優(yōu)解,即將m個子庫在冗余度t下存儲于n臺存儲服務(wù)器的相對最優(yōu)解,通過這一相對最優(yōu)解,整個數(shù)據(jù)庫的分布式存儲效率得到了保證。

(8)每個選擇組分別存儲一個子庫,即將選擇組中的每一臺存儲服務(wù)器都存儲相應(yīng)子庫的一個復(fù)制。

m個選擇組與m個子庫一一對應(yīng),因此上述步驟實質(zhì)上將m個子庫分別存儲在m個存儲代價最小的服務(wù)器組中,并且每個子庫都有t個冗余,即使其中的t-1臺服務(wù)器故障,也能夠繼續(xù)提供服務(wù),并在故障修復(fù)后提供恢復(fù)數(shù)據(jù)。一方面達(dá)到了分布式存儲的目的,另一方面也達(dá)到了冗余備份的目的。

(9)對于不在任何一個選擇組中的存儲服務(wù)器,使用該存儲服務(wù)器存儲所有的子庫。

可能由于某些存儲服務(wù)器存儲代價過大,或者由于存儲服務(wù)器數(shù)量很大,導(dǎo)致有一些存儲服務(wù)器沒有在前面的步驟中被選擇存儲子庫,為了不浪費(fèi)其存儲能力,本發(fā)明使用這些服務(wù)器存儲所有的子庫,作為進(jìn)一步的分布式存儲的備份。

前述步驟(4)中,需要針對每一臺存儲服務(wù)器計算當(dāng)前的存儲代價,存儲代價可以有多種計算方式,下面是依據(jù)本發(fā)明的一個實施例的計算方式,但是本領(lǐng)域技術(shù)人員可以采用任意一種可行的其他計算方式,本發(fā)明對此不作限制。

(4.1)設(shè)n臺存儲服務(wù)器為A1,A2,……,An;首先計算Ai(1≤i≤n)的數(shù)據(jù)代價Di,即Di=Ti/Li。其中,Ti是存儲服務(wù)器Ai到接口服務(wù)器的傳輸延遲時間(單位為秒),Li是存儲服務(wù)器Ai本身的數(shù)據(jù)吞吐率(單位為MB/秒)。

如果各臺存儲服務(wù)器在同一個局域網(wǎng)中,則所述傳輸延遲時間應(yīng)該是相同的,這種情況下可以省略該時間的計算,直接用一個固定數(shù)值代替。

(4.2)計算存儲服務(wù)器Ai的存儲代價Ci=FiDi。

其中,F(xiàn)i是Ai在已經(jīng)獲取的選擇組中出現(xiàn)的次數(shù)。例如,已經(jīng)獲取的選擇組為S1={A1,A2,A3}和S2={A1,A3,A4},那么當(dāng)前的F1=2,即A1在已獲取的兩個選擇組中出現(xiàn)2次,同理有F2=1,F(xiàn)3=2。

所述Fi反映了存儲服務(wù)器Ai中已有的子庫數(shù)量,每個子庫都會占用存儲空間和數(shù)據(jù)傳輸帶寬,導(dǎo)致存儲服務(wù)器負(fù)載增加,因而導(dǎo)致了存儲代價的增加。

基于上述基于庫復(fù)制的分布式存儲方法,在數(shù)據(jù)庫的管理上,同一個子庫在不同存儲服務(wù)器上都是同步的,因此如果n臺存儲服務(wù)器中有一臺丟失了數(shù)據(jù),可以使用其他的存儲服務(wù)器為其恢復(fù)數(shù)據(jù),例如,如果丟失數(shù)據(jù)的服務(wù)器上本來有k個子庫,那么就可以同時使用另外的相應(yīng)于k個子庫的k臺存儲服務(wù)器為其恢復(fù)數(shù)據(jù)。

以上所述僅是本發(fā)明的較佳實施方式,故凡依本發(fā)明專利申請范圍所述的構(gòu)造、特征及原理所做的等效變化或修飾,均包括于本發(fā)明專利申請范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1