1.一種數(shù)據(jù)庫部署方法,其特征在于,包括:
將多個(gè)分布式數(shù)據(jù)庫節(jié)點(diǎn)組成數(shù)據(jù)陣列,每個(gè)數(shù)據(jù)陣列設(shè)置主控?cái)?shù)據(jù)庫節(jié)點(diǎn),統(tǒng)一管理數(shù)據(jù)陣列中的記錄信息;
當(dāng)某個(gè)數(shù)據(jù)庫節(jié)點(diǎn)的記錄信息發(fā)生更新時(shí),僅將更新的信息發(fā)送給主控節(jié)點(diǎn),再由主控節(jié)點(diǎn)將該信息廣播給數(shù)據(jù)陣列中其他數(shù)據(jù)庫節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主控節(jié)點(diǎn)具有有效期,采用時(shí)間片輪轉(zhuǎn)機(jī)制通過優(yōu)化策略選擇產(chǎn)生下一個(gè)主控節(jié)點(diǎn);
除主控節(jié)點(diǎn)外,每個(gè)分布式數(shù)據(jù)陣列還選出備用主控節(jié)點(diǎn),時(shí)刻監(jiān)督主控節(jié)點(diǎn)的狀態(tài),當(dāng)主控節(jié)點(diǎn)出現(xiàn)意外不能正常工作時(shí),其將取代主控節(jié)點(diǎn),當(dāng)某個(gè)分布式數(shù)據(jù)庫節(jié)點(diǎn)上的記錄信息發(fā)生改變時(shí),只將該修改信息發(fā)送給主控節(jié)點(diǎn),由主控節(jié)點(diǎn)將該修改信息同步到數(shù)據(jù)陣列中其它分布式數(shù)據(jù)庫節(jié)點(diǎn)上,并將更新結(jié)果同樣發(fā)送到其他數(shù)據(jù)陣列的主控節(jié)點(diǎn)上,其他數(shù)據(jù)陣列的主控節(jié)點(diǎn)將會(huì)更新其所屬數(shù)據(jù)陣列的分布式數(shù)據(jù)庫節(jié)點(diǎn),最后使整個(gè)分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)都得到更新。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:
給每個(gè)分布式數(shù)據(jù)庫節(jié)點(diǎn)設(shè)定一個(gè)權(quán)值Wi,當(dāng)超過有效期時(shí),進(jìn)行下一輪的選擇,選擇Wi的最高的前兩個(gè)數(shù)據(jù)庫作為新的主控節(jié)點(diǎn)和備用主控節(jié)點(diǎn),其中權(quán)值Wi計(jì)算如下:
其中Ai表示第i個(gè)節(jié)點(diǎn)所在設(shè)備的網(wǎng)絡(luò)帶寬容量與響應(yīng)時(shí)間的乘積;
Ui表示第i個(gè)節(jié)點(diǎn)所在設(shè)備的處理器平均響應(yīng)時(shí)間;
Mi表示第i個(gè)節(jié)點(diǎn)所在設(shè)備的剩余存儲(chǔ)器空間,n為數(shù)據(jù)陣列下的數(shù)據(jù)庫節(jié)點(diǎn)總數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述每個(gè)分布式數(shù)據(jù)庫節(jié)點(diǎn)上都維護(hù)自身的數(shù)據(jù)服務(wù),分布式數(shù)據(jù)庫節(jié)點(diǎn)通過采用分布式互動(dòng)控制策略、消息通信協(xié)議、負(fù)載均衡策略來工作;當(dāng)有用戶終端請求到達(dá)時(shí),根據(jù)預(yù)定策略指定特定的分布式數(shù)據(jù)庫節(jié)點(diǎn)來處理該請求,通過查找元數(shù)據(jù)檢索表后找到所請求的記錄所對應(yīng)的內(nèi)部節(jié)點(diǎn)地址,從而使用戶終端請求直接定位到所要讀寫的數(shù)據(jù)所在的分布式數(shù)據(jù)庫節(jié)點(diǎn)上,再進(jìn)行相應(yīng)操作或讀寫。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述分布式數(shù)據(jù)庫節(jié)點(diǎn)采用以下副本拷貝方法,首先對數(shù)據(jù)庫節(jié)點(diǎn)狀態(tài)進(jìn)行估計(jì),然后將數(shù)據(jù)庫節(jié)點(diǎn)映射到基于散列構(gòu)造的圓形列表,將副本映射到圓形列表;根據(jù)預(yù)設(shè)策略存儲(chǔ)到某一數(shù)據(jù)庫節(jié)點(diǎn)上,完成副本部署拷貝;
在構(gòu)造的圓形列表中,每個(gè)數(shù)據(jù)庫節(jié)點(diǎn)i具有權(quán)值Vi。
Vi=ζLi+(1-ζ)Dij,(1<i<n,n為數(shù)據(jù)陣列中的節(jié)點(diǎn)數(shù))
Li=(Ai-Amin)/(Amax-Amin)
Dij=(dij-Dmin)/(Dmax-Dmin)
Ai表示第i個(gè)節(jié)點(diǎn)所在設(shè)備的網(wǎng)絡(luò)帶寬容量與響應(yīng)時(shí)間的乘積,Amax與Amin分別為Ai的最大值和最小值;
dij表示第i個(gè)節(jié)點(diǎn)到第j個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)距離,Dmax與Dmin分別為dij的最大值和最小值;
ζ是調(diào)節(jié)因子,用于調(diào)節(jié)節(jié)點(diǎn)負(fù)載Li和節(jié)點(diǎn)間距離參數(shù)Dij在權(quán)值估計(jì)中的比重;
通過散列運(yùn)算,得到每個(gè)數(shù)據(jù)庫節(jié)點(diǎn)產(chǎn)生的散列節(jié)點(diǎn)在圓形列表中的映射值,其映射值的集合用HG表示;每個(gè)數(shù)據(jù)庫節(jié)點(diǎn)i產(chǎn)生的散列節(jié)點(diǎn)集合為HGi,包含的散列節(jié)點(diǎn)個(gè)數(shù)為v1*gwi/gwmin;
其中g(shù)wmin為節(jié)點(diǎn)權(quán)值集合中最小的權(quán)值,v1為有最小權(quán)值的節(jié)點(diǎn)產(chǎn)生的散列節(jié)點(diǎn)個(gè)數(shù),并且每個(gè)節(jié)點(diǎn)占有的權(quán)值為:
節(jié)點(diǎn)映射到圓形列表之后,接著將數(shù)據(jù)副本映射到圓形列表,通過對數(shù)據(jù)副本r進(jìn)行SHA1散列運(yùn)算,得到在散列表對應(yīng)的key值,輸出用p表示;
在圓形列表從p開始順時(shí)針方向映射到散列節(jié)點(diǎn)集合中,找到距離p最近的數(shù)據(jù)庫節(jié)點(diǎn);將數(shù)據(jù)存儲(chǔ)在找到的節(jié)點(diǎn)中。