分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法和裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法和裝置:將系統(tǒng)中的各數(shù)據(jù)服務(wù)器劃分為M組,并分別為每組設(shè)置一個(gè)中繼服務(wù)器;每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立長(zhǎng)連接;對(duì)于任一數(shù)據(jù)服務(wù)器,當(dāng)每次接收到針對(duì)自身所存儲(chǔ)的任一Region的主副本的數(shù)據(jù)更新信息時(shí),分別進(jìn)行以下處理:根據(jù)該數(shù)據(jù)更新信息對(duì)該Region的主副本進(jìn)行更新,并通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及該Region的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將該數(shù)據(jù)更新信息發(fā)送給從副本所在的數(shù)據(jù)服務(wù)器,以便從副本所在的數(shù)據(jù)服務(wù)器完成對(duì)從副本的更新。應(yīng)用本發(fā)明所述方案,能夠降低系統(tǒng)的網(wǎng)絡(luò)連接維護(hù)開(kāi)銷。
【專利說(shuō)明】分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式存儲(chǔ)技術(shù),特別涉及分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法和裝置。
【背景技術(shù)】
[0002]在分布式數(shù)據(jù)庫(kù)中,可采用以下數(shù)據(jù)存儲(chǔ)方式:將數(shù)據(jù)庫(kù)中的每個(gè)表分解為多個(gè)小表(Reg1n),每個(gè)Reg1n分別被調(diào)度到一個(gè)數(shù)據(jù)服務(wù)器(Reg1n Server)上進(jìn)行存儲(chǔ),同時(shí)在其它數(shù)據(jù)服務(wù)器上對(duì)該Reg1n進(jìn)行備份。
[0003]圖1為現(xiàn)有各數(shù)據(jù)服務(wù)器上的數(shù)據(jù)存儲(chǔ)方式示意圖。
[0004]如圖1所示,對(duì)于每個(gè)數(shù)據(jù)服務(wù)器來(lái)說(shuō),其中的數(shù)據(jù)存儲(chǔ)區(qū)域可分為兩部分,一部分為主副本區(qū),另一部分為從副本區(qū),其中,主副本區(qū)用于存儲(chǔ)調(diào)度到該數(shù)據(jù)服務(wù)器上的Reg1n,從副本區(qū)用于存儲(chǔ)其它數(shù)據(jù)服務(wù)器在該數(shù)據(jù)服務(wù)器上備份的Reg1n ;通常,對(duì)于任一 Reg1n,將存儲(chǔ)在主副本區(qū)的數(shù)據(jù)稱為該Reg1n的主副本,將存儲(chǔ)在從副本區(qū)的數(shù)據(jù)稱為該Reg1n的從副本。
[0005]如圖1 m*^SRAl、RA2、RBl、RB2、RCl、RC2、RDl 和 RD2 分別表示各 Reg1n ;那么,RAl.P即表示RAl的主副本,RA2.P即表示RA2的主副本,依此類推;RA1.rl即表示RAl的第I個(gè)從副本,RAl.r2即表示RAl的第2個(gè)從副本,RA2.rl即表示RA2的第I個(gè)從副本,RA2.r2即表示RA2的第2個(gè)從副本,依此類推。
[0006]圖1中所示的箭頭表示各數(shù)據(jù)服務(wù)器之間的網(wǎng)絡(luò)連接,在分布式數(shù)據(jù)庫(kù)中,為了保證數(shù)據(jù)的可靠性和并發(fā)讀寫(xiě)性能,通常會(huì)將各從副本較為均勻地分布到系統(tǒng)中的各數(shù)據(jù)服務(wù)器上;如圖1所示,數(shù)據(jù)服務(wù)器A上的RA1.P對(duì)應(yīng)的兩個(gè)從副本分別位于數(shù)據(jù)服務(wù)器B和數(shù)據(jù)服務(wù)器C上,RA2.P對(duì)應(yīng)的兩個(gè)從副本分別位于數(shù)據(jù)服務(wù)器C和數(shù)據(jù)服務(wù)器D上,類似地,RBl.P對(duì)應(yīng)的兩個(gè)從副本分為位于數(shù)據(jù)服務(wù)器A和數(shù)據(jù)服務(wù)器D上,RB2.p對(duì)應(yīng)的兩個(gè)從副本分為位于數(shù)據(jù)服務(wù)器A和數(shù)據(jù)服務(wù)器C上,其它不再一一贅述。
[0007]在分布式數(shù)據(jù)庫(kù)中,為了保證數(shù)據(jù)讀寫(xiě)的一致性,要求同一個(gè)Reg1n對(duì)應(yīng)的多個(gè)副本保持強(qiáng)一致性,即當(dāng)對(duì)某一 Reg1n的主副本進(jìn)行更新時(shí),需要將所作更新同步到該Reg1n的從副本,從而實(shí)現(xiàn)數(shù)據(jù)同步。
[0008]現(xiàn)有數(shù)據(jù)同步方式如下:當(dāng)針對(duì)任一 Reg1n的數(shù)據(jù)更新信息提交到該Reg1n的主副本所在的數(shù)據(jù)服務(wù)器后,該數(shù)據(jù)服務(wù)器根據(jù)該數(shù)據(jù)更新信息對(duì)該Reg1n的主副本進(jìn)行更新,并通過(guò)與該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器之間的短連接或長(zhǎng)連接,將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器,該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器根據(jù)該數(shù)據(jù)更新信息完成對(duì)該Reg1n的從副本的更新后,向該Reg1n的主副本所在的數(shù)據(jù)服務(wù)器返回確認(rèn)消息。
[0009]如前所述,該Reg1n的主副本所在的數(shù)據(jù)服務(wù)器和該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器之間可采用短連接或長(zhǎng)連接的網(wǎng)絡(luò)連接方式。其中,短連接是指,當(dāng)需要進(jìn)行數(shù)據(jù)同步時(shí),該Reg1n的主副本所在的數(shù)據(jù)服務(wù)器與該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器之間建立網(wǎng)絡(luò)連接,當(dāng)數(shù)據(jù)同步結(jié)束時(shí),斷開(kāi)所建立的網(wǎng)絡(luò)連接;長(zhǎng)連接是指,該Reg1n的主副本所在的數(shù)據(jù)服務(wù)器與該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器之間預(yù)先建立好網(wǎng)絡(luò)連接,當(dāng)需要進(jìn)行數(shù)據(jù)同步時(shí),利用所建立的網(wǎng)絡(luò)連接進(jìn)行數(shù)據(jù)同步,當(dāng)數(shù)據(jù)同步結(jié)束時(shí),依然維持所建立的網(wǎng)絡(luò)連接。
[0010]在分布式數(shù)據(jù)庫(kù)中,每個(gè)Reg1n的更新均是記錄級(jí)別的,即每次更新的數(shù)據(jù)量均較小,且更新較為頻繁,而對(duì)于短連接來(lái)說(shuō),建立網(wǎng)絡(luò)連接需要進(jìn)行三次傳輸控制協(xié)議(TCP, Transmiss1n Control Protocol)握手操作,斷開(kāi)網(wǎng)絡(luò)連接需要進(jìn)行四次TCP握手操作,這樣,就會(huì)導(dǎo)致數(shù)據(jù)同步帶來(lái)的額外開(kāi)銷非常大,數(shù)據(jù)傳輸效率低,而且頻繁的短連接通信可能會(huì)帶來(lái)socket錯(cuò)誤。
[0011]為此,現(xiàn)有技術(shù)中多采用長(zhǎng)連接的網(wǎng)絡(luò)連接方式,這樣,當(dāng)需要進(jìn)行數(shù)據(jù)同步時(shí),即可省去網(wǎng)絡(luò)連接建立和斷開(kāi)的開(kāi)銷,并可提高數(shù)據(jù)傳輸效率等。
[0012]但是,長(zhǎng)連接的網(wǎng)絡(luò)連接方式在實(shí)際應(yīng)用中也會(huì)存在一定的問(wèn)題,如:在系統(tǒng)中,每個(gè)Reg1n的從副本均可能保存到該Reg1n的主副本所在的數(shù)據(jù)服務(wù)器以外的其它所有數(shù)據(jù)服務(wù)器上,相應(yīng)地,每個(gè)數(shù)據(jù)服務(wù)器均可能需要與其它所有數(shù)據(jù)服務(wù)器之間維持長(zhǎng)連接,從而導(dǎo)致系統(tǒng)的網(wǎng)絡(luò)連接維護(hù)開(kāi)銷很大。
【發(fā)明內(nèi)容】
[0013]有鑒于此,本發(fā)明提供了分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法和裝置,能夠降低系統(tǒng)的網(wǎng)絡(luò)連接維護(hù)開(kāi)銷。
[0014]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0015]一種分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法,包括:
[0016]將系統(tǒng)中的各數(shù)據(jù)服務(wù)器劃分為M組,并分別為每組設(shè)置一個(gè)中繼服務(wù)器,M為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立長(zhǎng)連接;
[0017]對(duì)于任一數(shù)據(jù)服務(wù)器X,當(dāng)每次接收到針對(duì)自身所存儲(chǔ)的任一小表Reg1n的主副本的數(shù)據(jù)更新信息時(shí),分別進(jìn)行以下處理:
[0018]根據(jù)所述數(shù)據(jù)更新信息對(duì)所述Reg1n的主副本進(jìn)行更新;
[0019]通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器,以便所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器根據(jù)所述數(shù)據(jù)更新信息完成對(duì)所述Reg1n的從副本的更新。
[0020]一種數(shù)據(jù)服務(wù)器,
[0021]所述數(shù)據(jù)服務(wù)器所在系統(tǒng)中的各數(shù)據(jù)服務(wù)器被劃分為M組,每組分別對(duì)應(yīng)一個(gè)中繼服務(wù)器,M為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立有長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立有長(zhǎng)連接;
[0022]所述數(shù)據(jù)服務(wù)器中包括:
[0023]第一處理模塊,用于當(dāng)每次接收到針對(duì)所在數(shù)據(jù)服務(wù)器所存儲(chǔ)的任一小表Reg1n的主副本的數(shù)據(jù)更新信息時(shí),將所述數(shù)據(jù)更新信息發(fā)送第二處理模塊,并通知所述第二處理模塊執(zhí)行自身功能;
[0024]所述第二處理模塊,用于根據(jù)所述數(shù)據(jù)更新信息對(duì)所述Reg1n的主副本進(jìn)行更新;并通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器,以便所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器根據(jù)所述數(shù)據(jù)更新信息完成對(duì)所述Reg1n的從副本的更新。
[0025]一種中繼服務(wù)器,
[0026]所述中繼服務(wù)器所在系統(tǒng)中的各數(shù)據(jù)服務(wù)器被劃分為M組,每組分別對(duì)應(yīng)一個(gè)中繼服務(wù)器,M為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立有長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立有長(zhǎng)連接;
[0027]所述中繼服務(wù)器中包括:
[0028]第四處理模塊,用于接收對(duì)應(yīng)分組中的數(shù)據(jù)服務(wù)器發(fā)送來(lái)的數(shù)據(jù)更新信息,將所述數(shù)據(jù)更新信息發(fā)送給所在中繼服務(wù)器以外的其它中繼服務(wù)器或?qū)?yīng)分組中的數(shù)據(jù)服務(wù)器;
[0029]第五處理模塊,用于接收所在中繼服務(wù)器以外的其它中繼服務(wù)器發(fā)送來(lái)的數(shù)據(jù)更新信息,將所述數(shù)據(jù)更新信息發(fā)送給對(duì)應(yīng)分組中的數(shù)據(jù)服務(wù)器。
[0030]可見(jiàn),采用本發(fā)明所述方案,將系統(tǒng)中的各數(shù)據(jù)服務(wù)器劃分為M組,每組分別對(duì)應(yīng)一個(gè)中繼服務(wù)器,每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立長(zhǎng)連接,每個(gè)中繼服務(wù)器分別與其它各中繼服務(wù)器以及對(duì)應(yīng)分組中的各數(shù)據(jù)服務(wù)器之間建立長(zhǎng)連接,后續(xù),可利用中繼服務(wù)器的路由轉(zhuǎn)發(fā)功能,實(shí)現(xiàn)數(shù)據(jù)同步;相比于現(xiàn)有技術(shù),本發(fā)明所述方案中需要維持的長(zhǎng)連接數(shù)明顯減少,從而降低了系統(tǒng)的網(wǎng)絡(luò)連接維護(hù)開(kāi)銷。
【專利附圖】
【附圖說(shuō)明】
[0031]圖1為現(xiàn)有各數(shù)據(jù)服務(wù)器上的數(shù)據(jù)存儲(chǔ)方式示意圖。
[0032]圖2為本發(fā)明分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法實(shí)施例的流程圖。
[0033]圖3為本發(fā)明所述分組以及連接方式第一示意圖。
[0034]圖4為本發(fā)明所述分組以及連接方式第二示意圖。
【具體實(shí)施方式】
[0035]針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明中提出一種分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方案,能夠降低系統(tǒng)的網(wǎng)絡(luò)連接維護(hù)開(kāi)銷。
[0036]為了使本發(fā)明的技術(shù)方案更加清楚、明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明所述方案作進(jìn)一步的詳細(xì)說(shuō)明。
[0037]圖2為本發(fā)明分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法實(shí)施例的流程圖。如圖2所示,包括:
[0038]步驟21:將系統(tǒng)中的各數(shù)據(jù)服務(wù)器劃分為M組,并分別為每組設(shè)置一個(gè)中繼服務(wù)器(Relay ServerXM為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立長(zhǎng)連接。
[0039]在實(shí)際應(yīng)用中,可按照預(yù)定方式將系統(tǒng)中的所有數(shù)據(jù)服務(wù)器劃分為M組,M為大于I的正整數(shù),具體取值可根據(jù)實(shí)際需要而定。
[0040]所述預(yù)定方式包括但不限于以下之一:
[0041]I)設(shè)定不同的IP地址段,根據(jù)各數(shù)據(jù)服務(wù)器的IP地址,將位于同一 IP地址段內(nèi)的各數(shù)據(jù)服務(wù)器劃分為一組;
[0042]2)分別對(duì)各數(shù)據(jù)服務(wù)器的IP地址進(jìn)行哈希運(yùn)算,將哈希運(yùn)算結(jié)果相同的各數(shù)據(jù)服務(wù)器劃分為一組;
[0043]3)采用隨機(jī)分組的方式對(duì)各數(shù)據(jù)服務(wù)器進(jìn)行分組。
[0044]并為每個(gè)分組分別設(shè)置一個(gè)中繼服務(wù)器,中繼服務(wù)器可以是由原來(lái)的數(shù)據(jù)服務(wù)器改造而成的,也可以是為實(shí)現(xiàn)本發(fā)明所述方案專門(mén)設(shè)計(jì)的,中繼服務(wù)器不進(jìn)行數(shù)據(jù)存儲(chǔ),只起到路由轉(zhuǎn)發(fā)的作用。
[0045]每個(gè)數(shù)據(jù)服務(wù)器均需要與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間也需要建立長(zhǎng)連接。
[0046]圖3為本發(fā)明所述分組以及連接方式第一示意圖。如圖3所示,數(shù)據(jù)服務(wù)器A和數(shù)據(jù)服務(wù)器B同屬于組1,數(shù)據(jù)服務(wù)器C和數(shù)據(jù)服務(wù)器D同屬于組2,中繼服務(wù)器I對(duì)應(yīng)于組1,中繼服務(wù)器2對(duì)應(yīng)于組2,相應(yīng)地,數(shù)據(jù)服務(wù)器A和數(shù)據(jù)服務(wù)器B需要分別與中繼服務(wù)器I建立長(zhǎng)連接,中繼服務(wù)器C和中繼服務(wù)器D需要分別與中繼服務(wù)器2建立長(zhǎng)連接,另外,中繼服務(wù)器I和中繼服務(wù)器2之間也需要建立長(zhǎng)連接。
[0047]需要說(shuō)明的是,無(wú)論是本發(fā)明中所建立的長(zhǎng)連接,還是現(xiàn)有技術(shù)中所建立的短連接和長(zhǎng)連接,在每?jī)蓚€(gè)服務(wù)器之間,通常均需要建立發(fā)送和接收兩條連接。對(duì)于兩個(gè)服務(wù)器來(lái)說(shuō),其中的一條連接對(duì)于一個(gè)服務(wù)器來(lái)說(shuō)是發(fā)送連接,對(duì)于另一個(gè)服務(wù)器來(lái)說(shuō)則是接收連接,同樣,另一條連接對(duì)于一個(gè)服務(wù)器來(lái)說(shuō)是接收連接,對(duì)于另一個(gè)服務(wù)器來(lái)說(shuō)則是發(fā)送連接。
[0048]步驟22:對(duì)于任一數(shù)據(jù)服務(wù)器X,當(dāng)每次接收到針對(duì)自身所存儲(chǔ)的任一 Reg1n的主副本的數(shù)據(jù)更新信息時(shí),分別進(jìn)行以下處理:根據(jù)該數(shù)據(jù)更新信息對(duì)該Reg1n的主副本進(jìn)行更新;通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器,以便該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器根據(jù)該數(shù)據(jù)更新信息完成對(duì)該Reg1n的從副本的更新。
[0049]為便于表述,本實(shí)施例中,用數(shù)據(jù)服務(wù)器X來(lái)代表系統(tǒng)中的任一數(shù)據(jù)服務(wù)器。
[0050]當(dāng)數(shù)據(jù)服務(wù)器X接收到針對(duì)自身所存儲(chǔ)的任一 Reg1n的主副本的數(shù)據(jù)更新信息時(shí),可按照現(xiàn)有方式,利用該數(shù)據(jù)更新信息對(duì)該Reg1n的主副本進(jìn)行更新,并且,按照本發(fā)明所述方式,通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器,這樣,該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器即可根據(jù)該數(shù)據(jù)更新信息完成對(duì)該Reg1n的從副本的更新,從而實(shí)現(xiàn)與數(shù)據(jù)服務(wù)器X之間的數(shù)據(jù)同步。
[0051]具體來(lái)說(shuō),當(dāng)數(shù)據(jù)服務(wù)器X將該數(shù)據(jù)更新信息發(fā)送給自身對(duì)應(yīng)的中繼服務(wù)器后,數(shù)據(jù)服務(wù)器X對(duì)應(yīng)的中繼服務(wù)器可進(jìn)行以下處理:
[0052]確定該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中是否存在與數(shù)據(jù)服務(wù)器x同組的數(shù)據(jù)服務(wù)器;
[0053]如果否,則將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,由該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器;
[0054]如果是,則將該數(shù)據(jù)更新信息直接發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與數(shù)據(jù)服務(wù)器X同組的數(shù)據(jù)服務(wù)器;通過(guò)該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與數(shù)據(jù)服務(wù)器X不同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與數(shù)據(jù)服務(wù)器X不同組的數(shù)據(jù)服務(wù)器。
[0055]舉例說(shuō)明:
[0056]假設(shè)該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器的個(gè)數(shù)共為三個(gè),為便于表述,分別將其稱之為數(shù)據(jù)服務(wù)器y、數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P,其中,數(shù)據(jù)服務(wù)器y與數(shù)據(jù)服務(wù)器X同組,數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P同組,但不與數(shù)據(jù)服務(wù)器X同組;那么,數(shù)據(jù)服務(wù)器X對(duì)應(yīng)的中繼服務(wù)器接收到數(shù)據(jù)服務(wù)器X發(fā)送來(lái)的數(shù)據(jù)更新信息后,可直接將該數(shù)據(jù)更新信息發(fā)送給數(shù)據(jù)服務(wù)器y,并且,將該數(shù)據(jù)更新信息發(fā)送給數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P對(duì)應(yīng)的中繼服務(wù)器,由數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P對(duì)應(yīng)的中繼服務(wù)器將該數(shù)據(jù)更新信息進(jìn)一步發(fā)送給數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P。
[0057]另外,作為一種優(yōu)化方式,本發(fā)明所述方案中還提出,對(duì)于該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與數(shù)據(jù)服務(wù)器X同組的數(shù)據(jù)服務(wù)器,可由數(shù)據(jù)服務(wù)器X直接將該數(shù)據(jù)更新信息發(fā)送給該數(shù)據(jù)服務(wù)器,而不經(jīng)過(guò)中繼服務(wù)器轉(zhuǎn)發(fā),從而在一定程度上減輕中繼服務(wù)器的負(fù)載。
[0058]相應(yīng)地,則需要系統(tǒng)中同組內(nèi)的每任意兩個(gè)數(shù)據(jù)服務(wù)器之間分別建立長(zhǎng)連接。圖4為本發(fā)明所述分組以及連接方式第二示意圖,可以看出,相比于圖3所示連接方式,圖4中,同組內(nèi)的兩個(gè)數(shù)據(jù)服務(wù)器之間也需要建立長(zhǎng)連接。
[0059]這樣,步驟22中,數(shù)據(jù)服務(wù)器X在通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器之前,還可進(jìn)一步進(jìn)行以下處理:
[0060]數(shù)據(jù)服務(wù)器X確定該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中是否存在與自身同組的數(shù)據(jù)服務(wù)器;
[0061]如果否,則通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器;
[0062]如果是,則將該數(shù)據(jù)更新信息直接發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與自身同組的數(shù)據(jù)服務(wù)器;通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與自身不同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將該數(shù)據(jù)更新信息發(fā)送給該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與自身不同組的數(shù)據(jù)服務(wù)器。
[0063]舉例說(shuō)明:
[0064]假設(shè)該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器的個(gè)數(shù)共為三個(gè),為便于表述,分別將其稱之為數(shù)據(jù)服務(wù)器y、數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P,其中,數(shù)據(jù)服務(wù)器y與數(shù)據(jù)服務(wù)器X同組,數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P同組,但不與數(shù)據(jù)服務(wù)器X同組;那么,數(shù)據(jù)服務(wù)器X在接收到該數(shù)據(jù)更新信息后,可將其直接發(fā)送給數(shù)據(jù)服務(wù)器1,并且,可將該數(shù)據(jù)更新信息發(fā)送給自身對(duì)應(yīng)的中繼服務(wù)器,由自身對(duì)應(yīng)的中繼服務(wù)器將其進(jìn)一步發(fā)送給數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P對(duì)應(yīng)的中繼服務(wù)器,并由數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P對(duì)應(yīng)的中繼服務(wù)器將該數(shù)據(jù)更新信息進(jìn)一步發(fā)送給數(shù)據(jù)服務(wù)器z和數(shù)據(jù)服務(wù)器P。
[0065]綜合上述介紹,在實(shí)際應(yīng)用中,可在系統(tǒng)中專門(mén)設(shè)置一個(gè)主節(jié)點(diǎn),并將系統(tǒng)中的各數(shù)據(jù)服務(wù)器的分組信息、每個(gè)分組分別對(duì)應(yīng)的中繼服務(wù)器信息,以及各數(shù)據(jù)服務(wù)器和各中繼服務(wù)器的IP地址信息等存儲(chǔ)在該主節(jié)點(diǎn)中。
[0066]另外,每個(gè)數(shù)據(jù)服務(wù)器中通常會(huì)保存有自身所存儲(chǔ)的每個(gè)Reg1n的主副本對(duì)應(yīng)的各從副本所在的數(shù)據(jù)服務(wù)器的IP地址以及自身對(duì)應(yīng)的中繼服務(wù)器的IP地址等。
[0067]這樣,當(dāng)數(shù)據(jù)服務(wù)器X接收到針對(duì)自身所存儲(chǔ)的任一 Reg1n的主副本的數(shù)據(jù)更新信息時(shí),后續(xù)可依次進(jìn)行如下處理:
[0068]I)通過(guò)與主節(jié)點(diǎn)進(jìn)行交互,獲知該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中哪個(gè)/哪些與自身同組,相應(yīng)地,可根據(jù)與自身同組的數(shù)據(jù)服務(wù)器的IP地址,將該數(shù)據(jù)更新信息發(fā)送給與自身同組的數(shù)據(jù)服務(wù)器,并將該數(shù)據(jù)更新信息以及該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中不與自身同組的數(shù)據(jù)服務(wù)器的IP地址發(fā)送給自身對(duì)應(yīng)的中繼服務(wù)器;
[0069]2)數(shù)據(jù)服務(wù)器X對(duì)應(yīng)的中繼服務(wù)器針對(duì)接收到的信息,首先通過(guò)與主節(jié)點(diǎn)進(jìn)行交互,獲知該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中不與數(shù)據(jù)服務(wù)器X同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器及其IP地址等;
[0070]假設(shè)該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中不與數(shù)據(jù)服務(wù)器x同組的數(shù)據(jù)服務(wù)器共對(duì)應(yīng)兩個(gè)中繼服務(wù)器,分別為中繼服務(wù)器a和中繼服務(wù)器b ;
[0071]那么,數(shù)據(jù)服務(wù)器X對(duì)應(yīng)的中繼服務(wù)器可分別將該數(shù)據(jù)更新信息發(fā)送給中繼服務(wù)器a和中繼服務(wù)器b,同時(shí),將該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中對(duì)應(yīng)于中繼服務(wù)器a的數(shù)據(jù)服務(wù)器的IP地址發(fā)送給中繼服務(wù)器a,將該Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中對(duì)應(yīng)于中繼服務(wù)器b的數(shù)據(jù)服務(wù)器的IP地址發(fā)送給中繼服務(wù)器b,相應(yīng)地,中繼服務(wù)器a和中繼服務(wù)器b將該數(shù)據(jù)更新信息分別發(fā)送給接收到的IP地址對(duì)應(yīng)的數(shù)據(jù)服務(wù)器。
[0072]需要說(shuō)明的是,以上所述僅為舉例說(shuō)明,并不用于限制本發(fā)明的技術(shù)方案,如果采用其它方式,只要能夠達(dá)到同樣的目的,也是可以的。比如,可在各數(shù)據(jù)服務(wù)器上分別存儲(chǔ)與其同組的其它數(shù)據(jù)服務(wù)器的IP地址等信息,并在每個(gè)中繼服務(wù)器上分別存儲(chǔ)系統(tǒng)中的各數(shù)據(jù)服務(wù)器的分組信息以及每個(gè)分組分別對(duì)應(yīng)的中繼服務(wù)器信息等,這樣,即可省去主節(jié)點(diǎn)這一實(shí)體設(shè)備。當(dāng)然,還可以采用本領(lǐng)域技術(shù)人員能夠想到的其它方式,不再一一贅述。
[0073]在實(shí)際應(yīng)用中,當(dāng)從副本所在的數(shù)據(jù)服務(wù)器根據(jù)接收到的數(shù)據(jù)更新信息完成對(duì)從副本的更新之后,還需要按照與該數(shù)據(jù)更新信息的發(fā)送路徑相反的路徑,向主副本所在的數(shù)據(jù)服務(wù)器返回確認(rèn)消息。
[0074]由于每個(gè)中繼服務(wù)器需要分別與對(duì)應(yīng)分組中的各數(shù)據(jù)服務(wù)器以及其它各中繼服務(wù)器之間維持長(zhǎng)連接,消耗的資源會(huì)比數(shù)據(jù)服務(wù)器高一些,因此,可采用性能較高的服務(wù)器作為中繼服務(wù)器。
[0075]本發(fā)明同時(shí)公開(kāi)了一種數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)服務(wù)器所在系統(tǒng)中的各數(shù)據(jù)服務(wù)器被劃分為M組,每組分別對(duì)應(yīng)一個(gè)中繼服務(wù)器,M為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立有長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立有長(zhǎng)連接;
[0076]其中,所述數(shù)據(jù)服務(wù)器中可包括:
[0077]第一處理模塊,用于當(dāng)每次接收到針對(duì)所在數(shù)據(jù)服務(wù)器所存儲(chǔ)的任一 Reg1n的主副本的數(shù)據(jù)更新信息時(shí),將所述數(shù)據(jù)更新信息發(fā)送第二處理模塊,并通知所述第二處理模塊執(zhí)行自身功能;
[0078]第二處理模塊,用于根據(jù)所述數(shù)據(jù)更新信息對(duì)所述Reg1n的主副本進(jìn)行更新;并通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器,以便所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器根據(jù)所述數(shù)據(jù)更新信息完成對(duì)所述Reg1n的從副本的更新。
[0079]另外,同組內(nèi)的每任意兩個(gè)數(shù)據(jù)服務(wù)器之間可分別建立有長(zhǎng)連接;
[0080]相應(yīng)地,第二處理模塊可進(jìn)一步用于,確定所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中是否存在與所在數(shù)據(jù)服務(wù)器同組的數(shù)據(jù)服務(wù)器;
[0081]如果否,則通過(guò)所在數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器;
[0082]如果是,則將所述數(shù)據(jù)更新信息直接發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所在數(shù)據(jù)服務(wù)器同組的數(shù)據(jù)服務(wù)器;通過(guò)所在數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所在數(shù)據(jù)服務(wù)器不同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所在數(shù)據(jù)服務(wù)器不同組的數(shù)據(jù)服務(wù)器。
[0083]所述數(shù)據(jù)服務(wù)器中還可進(jìn)一步包括:
[0084]第三處理模塊,用于當(dāng)接收到所在數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器發(fā)送來(lái)的數(shù)據(jù)更新信息時(shí),根據(jù)所述數(shù)據(jù)更新信息,對(duì)所在數(shù)據(jù)服務(wù)器中所存儲(chǔ)的、所述數(shù)據(jù)更新信息對(duì)應(yīng)的Reg1n的從副本進(jìn)行更新。
[0085]本發(fā)明同時(shí)公開(kāi)了一種中繼服務(wù)器,所述中繼服務(wù)器所在系統(tǒng)中的各數(shù)據(jù)服務(wù)器被劃分為M組,每組分別對(duì)應(yīng)一個(gè)中繼服務(wù)器,M為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立有長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立有長(zhǎng)連接;
[0086]其中,所述中繼服務(wù)器中可包括:
[0087]第四處理模塊,用于接收對(duì)應(yīng)分組中的數(shù)據(jù)服務(wù)器發(fā)送來(lái)的數(shù)據(jù)更新信息,將所述數(shù)據(jù)更新信息發(fā)送給所在中繼服務(wù)器以外的其它中繼服務(wù)器或?qū)?yīng)分組中的數(shù)據(jù)服務(wù)器;
[0088]第五處理模塊,用于接收所在中繼服務(wù)器以外的其它中繼服務(wù)器發(fā)送來(lái)的數(shù)據(jù)更新信息,將所述數(shù)據(jù)更新信息發(fā)送給對(duì)應(yīng)分組中的數(shù)據(jù)服務(wù)器。
[0089]具體地,
[0090]第四處理模塊接收到所述數(shù)據(jù)更新信息,確定所述數(shù)據(jù)更新信息對(duì)應(yīng)的小表Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中是否存在與發(fā)送所述數(shù)據(jù)更新信息的數(shù)據(jù)服務(wù)器同組的數(shù)據(jù)服務(wù)器;
[0091]如果否,則將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器;
[0092]如果是,則將所述數(shù)據(jù)更新信息直接發(fā)送給所述Reg1n對(duì)應(yīng)的從副本所在的數(shù)據(jù)服務(wù)器中、與發(fā)送所述數(shù)據(jù)更新信息的數(shù)據(jù)服務(wù)器同組的數(shù)據(jù)服務(wù)器;將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n對(duì)應(yīng)的從副本所在的數(shù)據(jù)服務(wù)器中、與發(fā)送所述數(shù)據(jù)更新信息的數(shù)據(jù)服務(wù)器不同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器;
[0093]第五處理模塊接收到所述數(shù)據(jù)更新消息,將所述數(shù)據(jù)更新消息發(fā)送給對(duì)應(yīng)分組中存儲(chǔ)有所述數(shù)據(jù)更新消息對(duì)應(yīng)的Reg1n的從副本的數(shù)據(jù)服務(wù)器。
[0094]上述裝置實(shí)施例的具體工作流程請(qǐng)參照前述方式實(shí)施例中的相應(yīng)說(shuō)明,此處不再贅述。
[0095]現(xiàn)有技術(shù)中,在沒(méi)有引入中繼服務(wù)器時(shí),每個(gè)數(shù)據(jù)服務(wù)器最多可能需要與η-1個(gè)其它數(shù)據(jù)服務(wù)器之間維持長(zhǎng)連接,η表示系統(tǒng)中的數(shù)據(jù)服務(wù)器總數(shù),而采用本發(fā)明所述方案后,即當(dāng)引入了中繼服務(wù)器后,每個(gè)數(shù)據(jù)服務(wù)器最多只需要與所在分組對(duì)應(yīng)的中繼服務(wù)器以及同組內(nèi)的其它各數(shù)據(jù)服務(wù)器之間維持長(zhǎng)連接,而每個(gè)中繼服務(wù)器只需要維持與對(duì)應(yīng)分組中的各數(shù)據(jù)服務(wù)器以及系統(tǒng)中的其它各中繼服務(wù)器之間的長(zhǎng)連接,相比于現(xiàn)有技術(shù),所需維持的長(zhǎng)連接數(shù)量明顯減少,從而極大地降低了系統(tǒng)的網(wǎng)絡(luò)連接維護(hù)開(kāi)銷,而且可提高系統(tǒng)的擴(kuò)展性等。
[0096]可結(jié)合實(shí)際應(yīng)用環(huán)境分析如下:對(duì)于具有1000個(gè)數(shù)據(jù)服務(wù)器的系統(tǒng)來(lái)說(shuō),按照現(xiàn)有方式,每個(gè)數(shù)據(jù)服務(wù)器最多需要維持(1000-1) Χ2 (包括接收和發(fā)送兩條長(zhǎng)連接)=1998個(gè)長(zhǎng)連接;而采用本發(fā)明所述方案后,假設(shè)將1000個(gè)數(shù)據(jù)服務(wù)器分為10組,每組中分別包括100個(gè)數(shù)據(jù)服務(wù)器,那么,每個(gè)數(shù)據(jù)服務(wù)器最多需要維持(與同組中的其它99個(gè)數(shù)據(jù)服務(wù)器之間的長(zhǎng)連接+與對(duì)應(yīng)的I個(gè)中繼服務(wù)器之間的長(zhǎng)連接)Χ2=200個(gè)長(zhǎng)連接,每個(gè)中繼服務(wù)器最多需要維持(與對(duì)應(yīng)分組中的100個(gè)數(shù)據(jù)服務(wù)器之間的長(zhǎng)連接+與系統(tǒng)中的其它9個(gè)中繼服務(wù)器之間的長(zhǎng)連接)Χ2=218個(gè)長(zhǎng)連接;可以看出,相比于現(xiàn)有技術(shù),采用本發(fā)明所述方案后,所需維持的長(zhǎng)連接數(shù)量明顯減少。
[0097]綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步方法,其特征在于,包括: 將系統(tǒng)中的各數(shù)據(jù)服務(wù)器劃分為M組,并分別為每組設(shè)置一個(gè)中繼服務(wù)器,M為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立長(zhǎng)連接; 對(duì)于任一數(shù)據(jù)服務(wù)器X,當(dāng)每次接收到針對(duì)自身所存儲(chǔ)的任一小表Reg1n的主副本的數(shù)據(jù)更新信息時(shí),分別進(jìn)行以下處理: 根據(jù)所述數(shù)據(jù)更新信息對(duì)所述Reg1n的主副本進(jìn)行更新; 通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器,以便所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器根據(jù)所述數(shù)據(jù)更新信息完成對(duì)所述Reg1n的從副本的更新。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器包括: 所述數(shù)據(jù)服務(wù)器X將所述數(shù)據(jù)更新信息發(fā)送給自身對(duì)應(yīng)的中繼服務(wù)器; 所述數(shù)據(jù)服務(wù)器X對(duì)應(yīng)的中繼服務(wù)器接收到所述數(shù)據(jù)更新信息后,確定所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中是否存在與所述數(shù)據(jù)服務(wù)器X同組的數(shù)據(jù)服務(wù)器; 如果否,則將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,由所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器; 如果是,則將所述數(shù)據(jù)更新信息直接發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所述數(shù)據(jù)服務(wù)器X同組的數(shù)據(jù)服務(wù)器;通過(guò)所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所述數(shù)據(jù)服務(wù)器X不同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所述數(shù)據(jù)服務(wù)器X不同組的數(shù)據(jù)服務(wù)器。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于, 該方法進(jìn)一步包括:同組內(nèi)的每任意兩個(gè)數(shù)據(jù)服務(wù)器之間分別建立長(zhǎng)連接; 所述通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器之前,進(jìn)一步包括: 所述數(shù)據(jù)服務(wù)器X確定所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中是否存在與自身同組的數(shù)據(jù)服務(wù)器; 如果否,則通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器;如果是,則將所述數(shù)據(jù)更新信息直接發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與自身同組的數(shù)據(jù)服務(wù)器;通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與自身不同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與自身不同組的數(shù)據(jù)服務(wù)器。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將系統(tǒng)中的各數(shù)據(jù)服務(wù)器劃分為M組包括但不限于以下之一: 設(shè)定不同的IP地址段,根據(jù)各數(shù)據(jù)服務(wù)器的IP地址,將位于同一 IP地址段內(nèi)的各數(shù)據(jù)服務(wù)器劃分為一組; 分別對(duì)各數(shù)據(jù)服務(wù)器的IP地址進(jìn)行哈希運(yùn)算,將哈希運(yùn)算結(jié)果相同的各數(shù)據(jù)服務(wù)器劃分為一組; 采用隨機(jī)分組的方式對(duì)各數(shù)據(jù)服務(wù)器進(jìn)行分組。
5.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于, 當(dāng)完成對(duì)所述Reg1n的從副本的更新之后,進(jìn)一步包括:按照與所述數(shù)據(jù)更新信息的發(fā)送路徑相反的路徑,向所述數(shù)據(jù)服務(wù)器X返回確認(rèn)消息。
6.一種數(shù)據(jù)服務(wù)器,其特征在于, 所述數(shù)據(jù)服務(wù)器所在系統(tǒng)中的各數(shù)據(jù)服務(wù)器被劃分為M組,每組分別對(duì)應(yīng)一個(gè)中繼服務(wù)器,M為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立有長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立有長(zhǎng)連接; 所述數(shù)據(jù)服務(wù)器中包括: 第一處理模塊,用于當(dāng)每次接收到針對(duì)所在數(shù)據(jù)服務(wù)器所存儲(chǔ)的任一小表Reg1n的主副本的數(shù)據(jù)更新信息時(shí),將所述數(shù)據(jù)更新信息發(fā)送第二處理模塊,并通知所述第二處理模塊執(zhí)行自身功能; 所述第二處理模塊,用于根據(jù)所述數(shù)據(jù)更新信息對(duì)所述Reg1n的主副本進(jìn)行更新;并通過(guò)自身對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器,以便所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器根據(jù)所述數(shù)據(jù)更新信息完成對(duì)所述Reg1n的從副本的更新。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)服務(wù)器,其特征在于, 同組內(nèi)的每任意兩個(gè)數(shù)據(jù)服務(wù)器之間分別建立有長(zhǎng)連接; 所述第二處理模塊進(jìn)一步用于,確定所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中是否存在與所在數(shù)據(jù)服務(wù)器同組的數(shù)據(jù)服務(wù)器; 如果否,則通過(guò)所在數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器; 如果是,則將所述數(shù)據(jù)更新信息直接發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所在數(shù)據(jù)服務(wù)器同組的數(shù)據(jù)服務(wù)器;通過(guò)所在數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器以及所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所在數(shù)據(jù)服務(wù)器不同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器,將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中與所在數(shù)據(jù)服務(wù)器不同組的數(shù)據(jù)服務(wù)器。
8.根據(jù)權(quán)利要求6或7所述的數(shù)據(jù)服務(wù)器,其特征在于,所述數(shù)據(jù)服務(wù)器中進(jìn)一步包括: 第三處理模塊,用于當(dāng)接收到所在數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器發(fā)送來(lái)的數(shù)據(jù)更新信息時(shí),根據(jù)所述數(shù)據(jù)更新信息,對(duì)所在數(shù)據(jù)服務(wù)器中所存儲(chǔ)的、所述數(shù)據(jù)更新信息對(duì)應(yīng)的Reg1n的從副本進(jìn)行更新。
9.一種中繼服務(wù)器,其特征在于, 所述中繼服務(wù)器所在系統(tǒng)中的各數(shù)據(jù)服務(wù)器被劃分為M組,每組分別對(duì)應(yīng)一個(gè)中繼服務(wù)器,M為大于I的正整數(shù);每個(gè)數(shù)據(jù)服務(wù)器分別與所在分組對(duì)應(yīng)的中繼服務(wù)器之間建立有長(zhǎng)連接,每任意兩個(gè)中繼服務(wù)器之間分別建立有長(zhǎng)連接; 所述中繼服務(wù)器中包括: 第四處理模塊,用于接收對(duì)應(yīng)分組中的數(shù)據(jù)服務(wù)器發(fā)送來(lái)的數(shù)據(jù)更新信息,將所述數(shù)據(jù)更新信息發(fā)送給所在中繼服務(wù)器以外的其它中繼服務(wù)器或?qū)?yīng)分組中的數(shù)據(jù)服務(wù)器; 第五處理模塊,用于接收所在中繼服務(wù)器以外的其它中繼服務(wù)器發(fā)送來(lái)的數(shù)據(jù)更新信息,將所述數(shù)據(jù)更新信息發(fā)送給對(duì)應(yīng)分組中的數(shù)據(jù)服務(wù)器。
10.根據(jù)權(quán)利要求9所述的中繼服務(wù)器,其特征在于, 所述第四處理模塊接收到所述數(shù)據(jù)更新信息,確定所述數(shù)據(jù)更新信息對(duì)應(yīng)的小表Reg1n的從副本所在的數(shù)據(jù)服務(wù)器中是否存在與發(fā)送所述數(shù)據(jù)更新信息的數(shù)據(jù)服務(wù)器同組的數(shù)據(jù)服務(wù)器; 如果否,則將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n的從副本所在的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器; 如果是,則將所述數(shù)據(jù)更新信息直接發(fā)送給所述Reg1n對(duì)應(yīng)的從副本所在的數(shù)據(jù)服務(wù)器中、與發(fā)送所述數(shù)據(jù)更新信息的數(shù)據(jù)服務(wù)器同組的數(shù)據(jù)服務(wù)器;將所述數(shù)據(jù)更新信息發(fā)送給所述Reg1n對(duì)應(yīng)的從副本所在的數(shù)據(jù)服務(wù)器中、與發(fā)送所述數(shù)據(jù)更新信息的數(shù)據(jù)服務(wù)器不同組的數(shù)據(jù)服務(wù)器對(duì)應(yīng)的中繼服務(wù)器; 所述第五處理模塊接收到所述數(shù)據(jù)更新消息,將所述數(shù)據(jù)更新消息發(fā)送給對(duì)應(yīng)分組中存儲(chǔ)有所述數(shù)據(jù)更新消息對(duì)應(yīng)的Reg1n的從副本的數(shù)據(jù)服務(wù)器。
【文檔編號(hào)】G06F17/30GK104239310SQ201310228349
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2013年6月8日 優(yōu)先權(quán)日:2013年6月8日
【發(fā)明者】郭磊濤, 錢(qián)嶺, 王鳳 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)公司