分布式數(shù)據(jù)庫同步方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了分布式數(shù)據(jù)庫同步方法和系統(tǒng),布式數(shù)據(jù)庫包括主服務(wù)器集群和備份服務(wù)器集群,主服務(wù)器集群包括第一主節(jié)點和第二主節(jié)點,備份服務(wù)器集群包括第一備份節(jié)點和第二備份節(jié)點;所述方法包括:生成主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹;確定區(qū)間哈希值不一致的第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹;確定第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點需同步的數(shù)據(jù)單元;進(jìn)行數(shù)據(jù)同步。由于本發(fā)明中,在確定需同步數(shù)據(jù)單元時可以在各個節(jié)點分別完成,所以可以實現(xiàn)多個節(jié)點分別同步確定需同步數(shù)據(jù)單元,從而節(jié)省執(zhí)行數(shù)據(jù)一致性檢查時所需的時間,進(jìn)而提高數(shù)據(jù)同步效率。
【專利說明】分布式數(shù)據(jù)庫同步方法和系統(tǒng)【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,更具體地說,涉及分布式數(shù)據(jù)庫同步方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著云計算的興起,對海量數(shù)據(jù)存儲和管理的需求也在不斷地增加。在這樣的趨勢下,近幾年出現(xiàn)了許多面向海量數(shù)據(jù)管理的大規(guī)模分布式數(shù)據(jù)庫,通過利用商用硬件搭建大規(guī)模服務(wù)器集群來提供海量的數(shù)據(jù)存儲和管理能力。
[0003]副本機(jī)制作為保證數(shù)據(jù)庫服務(wù)的可靠性和可用性的關(guān)鍵技術(shù)之一,在各種新興的大規(guī)模分布式數(shù)據(jù)庫系統(tǒng)中得到了廣泛運(yùn)用。在實際應(yīng)用中,一般會在數(shù)據(jù)中心之間采用異步復(fù)制的方式,對數(shù)據(jù)復(fù)制只提供最終一致性的保證,即通過將主數(shù)據(jù)庫的數(shù)據(jù)與副本數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行同步的方式,來保證數(shù)據(jù)的可靠性和可用性。為了保證主數(shù)據(jù)庫與副本數(shù)據(jù)庫同步的有效性,需要在各種故障場景下都能檢查并同步不一致的數(shù)據(jù)副本,確保數(shù)據(jù)庫在出現(xiàn)故障后能快速恢復(fù)到出錯前的正確狀態(tài),從而提升數(shù)據(jù)庫的可用性和可靠性。
[0004]現(xiàn)有技術(shù)中,所采用的技術(shù)方案一般為,在整個數(shù)據(jù)庫同步系統(tǒng)包括有主數(shù)據(jù)庫、副數(shù)據(jù)庫和同步單元,主數(shù)據(jù)庫和副數(shù)據(jù)庫均包括數(shù)據(jù)格式化單元,哈希值生成器和樹結(jié)構(gòu)生成器。
[0005]數(shù)據(jù)格式化單元負(fù)責(zé)按照共同數(shù)據(jù)模型接收,格式化,存儲和管理數(shù)據(jù)單元。哈希模型定義了一種或多種哈希算法及其輸入格式,哈希值生成器根據(jù)哈希模型為數(shù)據(jù)單元生成哈希值。樹結(jié)構(gòu)生成器把數(shù)據(jù)格式化單元中的數(shù)據(jù)單元組織成一棵樹。在樹結(jié)構(gòu)生成器生成樹后,哈希值生成器計算樹中每個節(jié)點的哈希值,從而得到一棵哈希樹。若節(jié)點為葉節(jié)點,節(jié)點哈希值通過對其包含的數(shù)據(jù)單元的哈希值的計算得到,如節(jié)點不是葉節(jié)點,節(jié)點哈希值通過對其子節(jié)點的哈希值和包含的數(shù)據(jù)單元的哈希值的計算得到。
[0006]同步單元通過對比主數(shù)據(jù)庫的哈希樹和副數(shù)據(jù)庫的哈希樹,確定不一致的數(shù)據(jù)單元,同步單元通知主數(shù)據(jù)庫將不一致的數(shù)據(jù)單元從主數(shù)據(jù)庫傳送至副數(shù)據(jù)庫;在將所有的哈希樹對比、并完成所有不一致的數(shù)據(jù)單元的傳送后,即為完成了數(shù)據(jù)庫的同步。
[0007]發(fā)明人通過研究發(fā)現(xiàn),現(xiàn)有技術(shù)中的技術(shù)方案至少存在以下缺陷:
[0008]由于在現(xiàn)有技術(shù)中,需要在同步單元中完成所有節(jié)點中數(shù)據(jù)單元的哈希樹比較,所以執(zhí)行數(shù)據(jù)一致性檢查時,需要較長的時間,從而使得數(shù)據(jù)同步的效率較低。
【發(fā)明內(nèi)容】
[0009]有鑒于此,本發(fā)明提供分布式數(shù)據(jù)庫同步方法和系統(tǒng),以解決現(xiàn)有技術(shù)存在的數(shù)據(jù)同步的效率較低的問題。
[0010]本發(fā)明是這樣實現(xiàn)的:
[0011] 一方面,提供了一種分布式數(shù)據(jù)庫同步方法,分布式數(shù)據(jù)庫包括主服務(wù)器集群和備份服務(wù)器集群,主服務(wù)器集群中主節(jié)點包括一個或多個區(qū)間,備份服務(wù)器集群中備份節(jié)點包括一個或多個區(qū)間,主服務(wù)器集群中每個區(qū)間在備份服務(wù)器集群中都對應(yīng)一個區(qū)間,主服務(wù)器集群包括第一主節(jié)點和第二主節(jié)點,備份服務(wù)器集群包括第一備份節(jié)點和第二備份節(jié)點,所述方法包括:
[0012]第一主節(jié)點獲取主服務(wù)器集群中各個主節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以主服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的主服務(wù)器集群哈希樹;其中,主節(jié)點的區(qū)間哈希樹為主節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹;
[0013]第一備份節(jié)點獲取備份服務(wù)器集群中各個備份節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以備份服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的備份服務(wù)器集群哈希樹;其中,備份節(jié)點的區(qū)間哈希樹為備份節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹;
[0014]第一主節(jié)點通過比較主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹,確定區(qū)間哈希值不一致的第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹;
[0015]第二主節(jié)點通過比較第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹,確定第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點需同步的數(shù)據(jù)單元;
[0016]第二主節(jié)點根據(jù)第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點中需同步的數(shù)據(jù)單元進(jìn)行數(shù)據(jù)同步。
[0017]進(jìn)一步的,所述以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹,具體包括:
[0018]根據(jù)數(shù)據(jù)單元信息和區(qū)間信息為每個區(qū)間構(gòu)造以數(shù)據(jù)單元為葉節(jié)點的樹結(jié)構(gòu);
[0019]根據(jù)哈希模型,計算所述樹結(jié)構(gòu)每個葉節(jié)點的哈希值,以生成所述區(qū)間哈希樹;
[0020]為每個區(qū)間哈希樹加入對應(yīng)的區(qū)間標(biāo)識。
[0021]進(jìn)一步的,所述主服務(wù)器集群中每個區(qū)間在備份服務(wù)器中都對應(yīng)一個區(qū)間,具體的包括:
[0022]分別為所述主服務(wù)器集群中每個區(qū)間和所述備份服務(wù)器中每個區(qū)間設(shè)有區(qū)間標(biāo)識;
[0023]將所述主服務(wù)器集群中每個區(qū)間的區(qū)間標(biāo)識和對應(yīng)的備份服務(wù)器中區(qū)間的區(qū)間標(biāo)識加以關(guān)聯(lián)。
[0024]進(jìn)一步的,所述第一主節(jié)點在多個主節(jié)點中選舉產(chǎn)生;所述第一備份節(jié)點在多個備份節(jié)點中選舉產(chǎn)生。
[0025]另一方面,本申請還提供了一種分布式數(shù)據(jù)庫同步系統(tǒng),所述分布式數(shù)據(jù)庫同步系統(tǒng)包括主服務(wù)器集群和備份服務(wù)器集群,主服務(wù)器集群中主節(jié)點包括一個或多個區(qū)間,備份服務(wù)器集群中備份節(jié)點包括一個或多個區(qū)間,主服務(wù)器集群中每個區(qū)間在備份服務(wù)器集群中都對應(yīng)一個區(qū)間,主服務(wù)器集群包括第一主節(jié)點和第二主節(jié)點,備份服務(wù)器集群包括第一備份節(jié)點和第二備份節(jié)點;
[0026]第一主節(jié)點包括主服務(wù)器集群哈希樹生成單元,用于獲取主服務(wù)器集群中各個主節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以主服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的主服務(wù)器集群哈希樹;其中,主節(jié)點的區(qū)間哈希樹為主節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹;
[0027]第一備份節(jié)點包括備份服務(wù)器集群哈希樹生成單元,用于獲取備份服務(wù)器集群中各個備份節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以備份服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的備份服務(wù)器集群哈希樹;其中,備份節(jié)點的區(qū)間哈希樹為備份節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹;
[0028]第一主節(jié)點包括區(qū)間確定單元,用于通過比較主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹,確定區(qū)間哈希值不一致的第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹;
[0029]第二主節(jié)點包括數(shù)據(jù)確定單元,用于通過比較第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹,確定第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點需同步的數(shù)據(jù)單元;
[0030]第二主節(jié)點包括同步單元,用于根據(jù)第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點中需同步的數(shù)據(jù)單元進(jìn)行數(shù)據(jù)同步。
[0031]進(jìn)一步的,所述主服務(wù)器集群哈希樹生成單元和所述備份服務(wù)器集群哈希樹生成單元均包括區(qū)間哈希樹生成模塊,所述區(qū)間哈希樹生成模塊包括:
[0032]樹生成器,用于根據(jù)數(shù)據(jù)管理單元的數(shù)據(jù)單元信息和區(qū)間管理單元的區(qū)間信息為每個區(qū)間構(gòu)造以數(shù)據(jù)單元為葉節(jié)點的樹結(jié)構(gòu);
[0033]哈希值生成器,用于根據(jù)哈希模型,計算所述樹結(jié)構(gòu)每個葉節(jié)點的哈希值,以生成所述區(qū)間哈希樹;
[0034]區(qū)間標(biāo)識單元,用于為每個區(qū)間哈希樹加入?yún)^(qū)間標(biāo)識。
[0035]進(jìn)一步的,所述主服務(wù)器集群和所述備份服務(wù)器集群均包括:
[0036]選舉單元,用于在多個所述主節(jié)點中確定所述第一主節(jié)點,或,在多個所述備份節(jié)點中確定所述第一備份節(jié)點。
[0037]通過上述描述可以得知,在本發(fā)明中,通過設(shè)有主協(xié)調(diào)節(jié)點和從協(xié)調(diào)節(jié)點,并能夠分別通過主協(xié)調(diào)節(jié)點和從協(xié)調(diào)節(jié)點生成的以區(qū)間哈希值為葉節(jié)點的主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹,從而可以初步地確定需同步主區(qū)間和需同步備份區(qū)間,以及,分別與需同步主區(qū)間、需同步備份區(qū)間對應(yīng)的需同步主節(jié)點和需同步備份節(jié)點;然后,通過比較需同步主節(jié)點的區(qū)間哈希樹和需同步備份節(jié)點的區(qū)間哈希樹,可以確定哈希值不一致的對應(yīng)數(shù)據(jù)單元為需同步主數(shù)據(jù)單元和需同步備份數(shù)據(jù)單元;由于本發(fā)明中,在確定需同步主數(shù)據(jù)單元和需同步備份數(shù)據(jù)單元時可以在各個節(jié)點分別完成,所以可以實現(xiàn)多個節(jié)點分別同步確定需同步數(shù)據(jù)單元,從而節(jié)省執(zhí)行數(shù)據(jù)一致性檢查時所需的時間,進(jìn)而提高數(shù)據(jù)同步效率。
【專利附圖】
【附圖說明】
[0038]為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0039]圖1為本發(fā)明中分布式數(shù)據(jù)庫同步系統(tǒng)的組織結(jié)構(gòu)示意圖;
[0040]圖2為本發(fā)明實施例提供的分布式數(shù)據(jù)庫同步方法的流程示意圖;
[0041]圖3為本發(fā)明提供的分布式數(shù)據(jù)庫同步系統(tǒng)的結(jié)構(gòu)示意圖;
[0042]圖4為本發(fā)明提供的服務(wù)器集群中節(jié)點的結(jié)構(gòu)示意圖?!揪唧w實施方式】
[0043]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0044]為了解決現(xiàn)有技術(shù)中,數(shù)據(jù)同步的效率較低的問題,在本實施例中,提供了一種分布式數(shù)據(jù)庫同步方法,圖1描述了本發(fā)明中分布式數(shù)據(jù)庫同步系統(tǒng)的組織結(jié)構(gòu),分布式數(shù)據(jù)庫包括主服務(wù)器集群12和備份服務(wù)器集群13,主服務(wù)器集群12中主節(jié)點14包括一個或多個區(qū)間,備份服務(wù)器集群13中備份節(jié)點15包括一個或多個區(qū)間,主服務(wù)器集群12中每個區(qū)間在備份服務(wù)器集群13中都對應(yīng)一個區(qū)間,主節(jié)點和備份節(jié)點中每個區(qū)間包括一個或多個數(shù)據(jù)單元。
[0045]圖2描述了本發(fā)明實施例提供的一種分布式數(shù)據(jù)庫同步方法,其中,主服務(wù)器集群12包括第一主節(jié)點和第二主節(jié)點,備份服務(wù)器集群13包括第一備份節(jié)點和第二備份節(jié)點,該分布式數(shù)據(jù)庫同步方法包括:
[0046]SI 1、生成主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹。
[0047]第一主節(jié)點獲取主服務(wù)器集群中各個主節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以主服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的主服務(wù)器集群哈希樹;其中,主節(jié)點的區(qū)間哈希樹為主節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹;
[0048]第一備份節(jié)點獲取備份服務(wù)器集群中各個備份節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以備份服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的備份服務(wù)器集群哈希樹;其中,備份節(jié)點的區(qū)間哈希樹為備份節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹;
[0049]本發(fā)明中的數(shù)據(jù)庫服務(wù)器集群包括有多個節(jié)點來存儲數(shù)據(jù),首先根據(jù)各個節(jié)點的存儲功能不同,將節(jié)點分為主節(jié)點和備份節(jié)點兩種;在實際應(yīng)用中,可以將多個主節(jié)點總稱為主服務(wù)器集群,將多個備份節(jié)點總稱為備份服務(wù)器集群,備份服務(wù)器集群用于對主服務(wù)器集群中的數(shù)據(jù)進(jìn)行備份。
[0050]在所述主節(jié)點和所述備份節(jié)點的功能均包括:管理、存儲、和格式化數(shù)據(jù)單元;將數(shù)據(jù)單元按區(qū)間進(jìn)行劃分,并記錄區(qū)間信息,具體的可以包括,通過數(shù)據(jù)管理單元維護(hù)包括多個數(shù)據(jù)單元的區(qū)間的區(qū)間信息。
[0051]在本發(fā)明中,主節(jié)點和備份節(jié)點均包括的功能具體為:通過數(shù)據(jù)管理單元存儲、格式化和管理數(shù)據(jù);本發(fā)明中的數(shù)據(jù)單元是分布式數(shù)據(jù)庫進(jìn)行數(shù)據(jù)組織的最小單元,數(shù)據(jù)管理單元可以包括有多個數(shù)據(jù)單元,每個數(shù)據(jù)單元可以通過其數(shù)據(jù)單元標(biāo)識來區(qū)分和識別。具體的,數(shù)據(jù)管理單元可以通過設(shè)定的數(shù)據(jù)模型來將需要存儲的數(shù)據(jù)格式化成多個數(shù)據(jù)單
J Li ο
[0052]本發(fā)明還在數(shù)據(jù)管理單元中,將多個數(shù)據(jù)單元組織為一個區(qū)間,通過區(qū)間管理單元來維護(hù)包括多個數(shù)據(jù)單元的區(qū)間的區(qū)間信息。也就是說,每個數(shù)據(jù)管理單元中,可以包括多個區(qū)間;區(qū)間是分布式數(shù)據(jù)庫進(jìn)行數(shù)據(jù)管理的最小單元。每個區(qū)間可以通過其區(qū)間標(biāo)識來區(qū)分和識別。
[0053]在基于以上組織結(jié)構(gòu)的分布式數(shù)據(jù)庫中,本發(fā)明中,所述提供的分布式數(shù)據(jù)庫同步方法首先要通過第一主節(jié)點獲取主服務(wù)器集群中各個主節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以主服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的主服務(wù)器集群哈希樹;其中,主節(jié)點的區(qū)間哈希樹為主節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹;
[0054]第一備份節(jié)點獲取備份服務(wù)器集群中各個備份節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以備份服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的備份服務(wù)器集群哈希樹;其中,備份節(jié)點的區(qū)間哈希樹為備份節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹;
[0055]主節(jié)點和備份節(jié)點的區(qū)間哈希樹的生成方式是類似的,具體可以為,根據(jù)數(shù)據(jù)管理單元中的數(shù)據(jù)單元信息和區(qū)間管理單元中的區(qū)間信息,通過哈希模型為每個區(qū)間生成以數(shù)據(jù)單元的哈希值為葉節(jié)點,且包括區(qū)間標(biāo)識的區(qū)間哈希樹。
[0056]主服務(wù)器集群中每個區(qū)間在備份服務(wù)器中都對應(yīng)一個區(qū)間,在本發(fā)明中,區(qū)間根據(jù)其所屬的節(jié)點的性質(zhì)可以分為分為主分區(qū)和備份分區(qū)兩種,即,主節(jié)點中所包括的分區(qū)可以稱之為主分區(qū),備份節(jié)點中的分區(qū)可以稱之為備份分區(qū)。主分區(qū)與備份分區(qū)一一對應(yīng),即主服務(wù)器集群中的主區(qū)間I在備份服務(wù)器集群中有對應(yīng)的備份分區(qū)1,主服務(wù)器集群中的主區(qū)間2在備份服務(wù)器集群中有對應(yīng)的備份分區(qū)2,以此類推;其中,備份分區(qū)通過和主分區(qū)同步來備份主分區(qū)中的數(shù)據(jù)。
[0057]此外,還可以通過分別為主分區(qū)和備份分區(qū)設(shè)有區(qū)間標(biāo)識,并通過所述區(qū)間標(biāo)識將對應(yīng)的主分區(qū)和備份分區(qū)加以關(guān)聯(lián)的方式來使主分區(qū)與備份分區(qū)一一對應(yīng)。
[0058]本發(fā)明中的主節(jié)點和備份節(jié)點還可以根據(jù)數(shù)據(jù)管理單元中的數(shù)據(jù)單元信息和區(qū)間管理單元中的區(qū)間信息,通過哈希模型為每個區(qū)間生成以數(shù)據(jù)單元的哈希值為葉節(jié)點的區(qū)間哈希樹。
[0059]具體的,完成上述功能可以通過以下方式來實現(xiàn):
[0060]根據(jù)數(shù)據(jù)管理單元的數(shù)據(jù)單元信息和區(qū)間管理單元的區(qū)間信息構(gòu)造以數(shù)據(jù)單元為葉節(jié)點的樹結(jié)構(gòu);在實際應(yīng)用中,可以通過樹生成器來實現(xiàn)為每個區(qū)間構(gòu)造以數(shù)據(jù)單元為葉節(jié)點的樹結(jié)構(gòu)。
[0061]根據(jù)哈希模型,計算樹結(jié)構(gòu)每個葉節(jié)點的哈希值,以生成區(qū)間哈希樹。
[0062]在實際應(yīng)用中,可以通過哈希值生成器來根據(jù)樹結(jié)構(gòu)生成區(qū)間哈希樹,這樣,通過為每個區(qū)間生成其對應(yīng)的區(qū)間哈希樹,從而通過建立區(qū)間哈希樹,可以將主節(jié)點中區(qū)間的區(qū)間哈希樹來與相應(yīng)備份節(jié)點中的相應(yīng)區(qū)間的哈希樹的比較來確定是否有需要同步的數(shù)據(jù)單元。
[0063]第一主節(jié)點獲取主服務(wù)器集群中各個主節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值后,以各個主節(jié)點的區(qū)間哈希值為葉節(jié)點,生成主服務(wù)器集群哈希樹;
[0064]類似的,第一備份節(jié)點獲取備份服務(wù)器集群中各個備份節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值后,以各個備份節(jié)點的區(qū)間哈希值為葉節(jié)點,生成備份服務(wù)器集群哈希樹;
[0065]本發(fā)明中,可以通過選舉機(jī)制產(chǎn)生第一主節(jié)點或第一備份節(jié)點。即,第一主節(jié)點可以通過選舉,在多個主節(jié)點中產(chǎn)生;類似的,第一備份節(jié)點也可以通過選舉在多個備份節(jié)點中產(chǎn)生。
[0066]S12、確定區(qū)間哈希值不一致的第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹。
[0067]第一主節(jié)點通過比較主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹,確定區(qū)間哈希值不一致的第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹;在進(jìn)行數(shù)據(jù)一致性檢查時,即,檢查備份服務(wù)器集群與主服務(wù)器集群中的數(shù)據(jù)是否一致時,首先對比主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹是否一致,如果一致,則表明該主服務(wù)器集群和備份服務(wù)器集群數(shù)據(jù)一致,不需要進(jìn)行同步更新;如果不一致,則表明主服務(wù)器集群和備份服務(wù)器集群中的區(qū)間至少有一個區(qū)間需要同步更新。具體的,在本發(fā)明中,可以將區(qū)間哈希值不一致的主節(jié)點稱之為第二主節(jié)點,將區(qū)間哈希值不一致的備份節(jié)點稱之為第二備份節(jié)點;
[0068]在本發(fā)明中,當(dāng)比較主服務(wù)器集群哈希樹和備份服務(wù)器集群時,發(fā)現(xiàn)不一致時,將造成不一致的對應(yīng)區(qū)間確定為需同步主區(qū)間以及需同步備份區(qū)間,即,第二主節(jié)點和第二備份節(jié)點;進(jìn)一步的,還可以將需同步主區(qū)間以及需同步備份區(qū)間的區(qū)間標(biāo)識分別通知對應(yīng)的主節(jié)點和備份節(jié)點,該主節(jié)點即為需同步主節(jié)點,該備份節(jié)點即為需同步備份節(jié)點。
[0069]進(jìn)一步的,在本發(fā)明中,通知所述需同步區(qū)間對應(yīng)的需同步主節(jié)點和需同步備份節(jié)點的具體方式可以是,通過分別獲取包括需同步主區(qū)間以及需同步備份區(qū)間所對應(yīng)的區(qū)間的區(qū)間標(biāo)識,以及,主節(jié)點和備份節(jié)點的節(jié)點標(biāo)識信息的三元組數(shù)據(jù),并將三元組數(shù)據(jù)分別發(fā)送至對應(yīng)的主節(jié)點和備份節(jié)點;由于在三元組數(shù)據(jù)中,包括了區(qū)間的區(qū)間標(biāo)識和與其對應(yīng)的主節(jié)點和備份節(jié)點的節(jié)點標(biāo)識,從而可以實現(xiàn)通知相應(yīng)的主節(jié)點和備份節(jié)點。
[0070]S13、確定第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點中需同步的數(shù)據(jù)單元。[0071 ] 第二主節(jié)點通過比較第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹,確定第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點需同步的數(shù)據(jù)單元;
[0072]由于在本發(fā)明中,還計算了各個區(qū)間的區(qū)間哈希值,所以當(dāng)主節(jié)點和備份節(jié)點中對應(yīng)的區(qū)間至少有一個需要同步更新時,通過比較第二主節(jié)點和第二備份節(jié)點中的區(qū)間哈希樹,即可確定哈希值不一致的對應(yīng)數(shù)據(jù)單元為需同步主數(shù)據(jù)單元以及需同步備份數(shù)據(jù)單元,從而確定了需要同步更新的數(shù)據(jù)單元。由于本發(fā)明中,需同步的節(jié)點可以為多個,所以第二主節(jié)點和第二備份節(jié)點也可以為多個。
[0073]由于在本發(fā)明中,進(jìn)行數(shù)據(jù)一致性檢查時,多個第二主節(jié)點可以分別通過比較第二主區(qū)間的區(qū)間哈希樹和對應(yīng)的第二備份節(jié)點中第二備份區(qū)間的區(qū)間哈希樹進(jìn)行比較,所以可以實現(xiàn)多個節(jié)點間的同步運(yùn)行,由于本發(fā)明可以有效地利用節(jié)點間的網(wǎng)絡(luò)帶寬和運(yùn)算資源,從而節(jié)省了執(zhí)行數(shù)據(jù)一致性檢查和數(shù)據(jù)同步時所需的時間,進(jìn)而也就有效地提高了數(shù)據(jù)同步效率。
[0074]具體的,主節(jié)點I在與備份節(jié)點I進(jìn)行數(shù)據(jù)一致性檢查的同時,主節(jié)點2可以同時與備份節(jié)點2進(jìn)行數(shù)據(jù)一致性檢查,以此類推,可以是實現(xiàn)多個主節(jié)點與備份節(jié)點進(jìn)行數(shù)據(jù)一致性的同步檢查。
[0075]S14、第二主節(jié)點根據(jù)第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點中需同步的數(shù)據(jù)單元進(jìn)行數(shù)據(jù)同步。
[0076]在本發(fā)明中,完成需同步數(shù)據(jù)單元在對應(yīng)的第二主節(jié)點和第二備份節(jié)點間的數(shù)據(jù)同步,具體可以由第二主節(jié)點完成。也就是說,在本發(fā)明中,每個主節(jié)點中均可設(shè)有同步單元,這樣,當(dāng)主單元為第二主節(jié)點時,通過其同步單元即可完成數(shù)據(jù)單元的同步更新。由于本發(fā)明中的同步單元為多個,所以在分布式環(huán)境下,發(fā)生單點故障的時候,如某個同步單元失效的時候,也不會影響整個數(shù)據(jù)庫同步系統(tǒng)的正常運(yùn)行。進(jìn)而提高了分布式數(shù)據(jù)庫同步系統(tǒng)的健碩性。
[0077]圖3描述了本發(fā)明提供的一種分布式數(shù)據(jù)庫同步系統(tǒng)的結(jié)構(gòu),該分布式數(shù)據(jù)庫同步系統(tǒng)包括主服務(wù)器集群12和備份服務(wù)器集群13,主服務(wù)器集群12包括第一主節(jié)點141和第二主節(jié)點142,備份服務(wù)器集群13包括第一備份節(jié)151點和第二備份節(jié)點152 ;
[0078]第一主節(jié)點141包括主服務(wù)器集群哈希樹生成單元121,用于獲取主服務(wù)器集群中各個主節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以主服務(wù)器集群中區(qū)間哈希值為葉節(jié)點的主服務(wù)器集群哈希樹;其中,第一節(jié)點可以從多個主節(jié)點中來確定。
[0079]第一備份節(jié)點151包括備份服務(wù)器集群哈希樹生成單元131,用于獲取備份服務(wù)器集群中各個備份節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以備份服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的備份服務(wù)器集群哈希樹;其中,第一備份節(jié)點可以從多個備份節(jié)點中來確定。
[0080]進(jìn)一步的,本發(fā)明中,第一主節(jié)點141或第一備份節(jié)點151的確定具體可以通過選舉機(jī)制產(chǎn)生。即,通過選舉機(jī)制,在多個所述主節(jié)點中確定第一主節(jié)點,或,在多個所述備份節(jié)點中確定第一備份節(jié)點。
[0081]第一主節(jié)點141包括區(qū)間確定單元122,用于通過比較主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹,確定區(qū)間哈希值不一致的兩個對應(yīng)區(qū)間為需同步主區(qū)間以及需同步備份區(qū)間。
[0082]進(jìn)一步的,還可以通知所述需同步主區(qū)間以及需同步備份區(qū)間分別對應(yīng)的第二主節(jié)點142即為需同步的主節(jié)點,第二備份節(jié)點152即為需同步的備份節(jié)點。當(dāng)需同步主區(qū)間和需同步備份區(qū)間為多個,且需同步主區(qū)間和需同步備份區(qū)間分別位于多個第二主節(jié)點和第二備份節(jié)點中時,第二主節(jié)點和第二備份節(jié)點也就為多個。
[0083]在進(jìn)行數(shù)據(jù)一致性檢查時,即,檢查主服務(wù)器集群12與備份服務(wù)器集群13中的數(shù)據(jù)是否一致時,區(qū)間確定單元122首先對比主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹是否一致,如果一致,則表明該主服務(wù)器集群12和備份服務(wù)器集群13數(shù)據(jù)一致,不需要進(jìn)行同步更新;如果不一致,則表明主服務(wù)器集群12和備份服務(wù)器集群13中的區(qū)間至少有一個區(qū)間需要同步更新。
[0084]進(jìn)一步的,在本發(fā)明中,當(dāng)比較主服務(wù)器集群哈希樹和備份服務(wù)器集群時,發(fā)現(xiàn)不一致時,區(qū)間確定單元122還要將不一致的對應(yīng)區(qū)間的區(qū)間標(biāo)識分別通知對應(yīng)的第二主節(jié)點142和第二備份節(jié)點152,該第二主節(jié)點142即為需同步主節(jié)點,該第二備份節(jié)點152即為需同步備份節(jié)點,第二主節(jié)點142和第二備份節(jié)點152的對應(yīng)區(qū)間則分別為需同步主區(qū)間以及需同步備份區(qū)間。
[0085]針對第一主節(jié)點如何通知需同步節(jié)點,在本發(fā)明中,區(qū)間確定單元122還可以包括三元組數(shù)據(jù)處理組件,當(dāng)區(qū)間哈希值不一致時,區(qū)間確定單元122分別獲取包括需同步區(qū)間的區(qū)間標(biāo)識、主節(jié)點14和備份節(jié)點15的節(jié)點標(biāo)識信息的三元組數(shù)據(jù),并將所述三元組數(shù)據(jù)發(fā)送至分別需同步主區(qū)間以及需同步備份區(qū)間對應(yīng)的主節(jié)點和備份節(jié)點,以通知需同步主節(jié)點和需同步備份節(jié)點。
[0086]第二主節(jié)點142包括數(shù)據(jù)確定單元123,用于通過比較需同步主區(qū)間以及需同步備份區(qū)間的區(qū)間哈希樹,確定哈希值不一致的對應(yīng)數(shù)據(jù)單元為需同步主數(shù)據(jù)單元以及需同步備份數(shù)據(jù)單元;
[0087]第二主節(jié)點142包括同步單元124,用于完成需同步主區(qū)間和需同步備份區(qū)間在對應(yīng)的需同步主節(jié)點和需同步備份節(jié)點間的數(shù)據(jù)同步。
[0088]由于在本發(fā)明中,還計算了各個區(qū)間的區(qū)間哈希樹,所以當(dāng)主節(jié)點和備份節(jié)點中對應(yīng)的區(qū)間至少有一個需要同步更新時,數(shù)據(jù)確定單元123通過比較需同步主區(qū)間和需同步備份區(qū)間的區(qū)間哈希樹,即可確定哈希值不一致的對應(yīng)數(shù)據(jù)單元為需要同步的數(shù)據(jù)單元,這樣就可以確定需同步主數(shù)據(jù)單元以及需同步備份數(shù)據(jù)單元。從而,通過同步單元124即可完成需同步主區(qū)間和需同步備份區(qū)間在對應(yīng)的需同步主節(jié)點和需同步備份節(jié)點間的數(shù)據(jù)同步。
[0089]由于在本發(fā)明中,進(jìn)行數(shù)據(jù)一致性檢查時主節(jié)點直接將其需同步主區(qū)間的區(qū)間哈希樹和備份節(jié)點中需同步備份區(qū)間的區(qū)間哈希樹進(jìn)行比較,所以可以實現(xiàn)多個節(jié)點間的同步運(yùn)行,由于本發(fā)明可以有效地利用節(jié)點間的網(wǎng)絡(luò)帶寬和運(yùn)算資源,從而節(jié)省了執(zhí)行數(shù)據(jù)一致性檢查和數(shù)據(jù)同步時所需的時間,進(jìn)而也就有效地提高了數(shù)據(jù)同步效率。
[0090]由于在本發(fā)明中,同步單元可以設(shè)于主節(jié)點中,所以,在完成需同步數(shù)據(jù)單元在對應(yīng)的需同步主節(jié)點和需同步備份節(jié)點間的數(shù)據(jù)同步,具體可以由第二主節(jié)點完成,第二主節(jié)點和第二備份節(jié)點均可以為多個,在本發(fā)明中,每個第二主節(jié)點中均可設(shè)有同步單元,這樣,當(dāng)多個第二主節(jié)點均為需同步主節(jié)點時,通過多個同步單元即可并行完成數(shù)據(jù)單元的同步更新。由于本發(fā)明中的同步單元為多個,所以在分布式環(huán)境下,發(fā)生單點故障的時候,如某個同步單元失效的時候,也不會影響整個數(shù)據(jù)庫同步系統(tǒng)的正常運(yùn)行。進(jìn)而提高了分布式數(shù)據(jù)庫同步系統(tǒng)的健碩性。
[0091]針對主服務(wù)器集群中主節(jié)點和備份服務(wù)器集群中備份節(jié)點,圖4描述了本發(fā)明中提供的服務(wù)器集群中節(jié)點的結(jié)構(gòu),包括主服務(wù)器集群中主節(jié)點和備份服務(wù)器集群中備份節(jié)點的結(jié)構(gòu),主節(jié)點14和備份節(jié)點15的結(jié)構(gòu)包括:區(qū)間管理單元22,用于將數(shù)據(jù)單元24按區(qū)間23進(jìn)行劃分,并記錄區(qū)間信息;區(qū)間哈希樹生成單元25,用于根據(jù)數(shù)據(jù)單元信息和區(qū)間信息,通過哈希模型為每個區(qū)間生成以數(shù)據(jù)單元的哈希值為葉節(jié)點,且包括區(qū)間標(biāo)識的區(qū)間哈希樹;其中,區(qū)間23根據(jù)其所屬的節(jié)點分為主分區(qū)和備份分區(qū),所述主分區(qū)與所述備份分區(qū)一一對應(yīng),也就是說,主服務(wù)器集群中每個區(qū)間在備份服務(wù)器中都對應(yīng)一個區(qū)間。
[0092]本發(fā)明中的數(shù)據(jù)單元24是分布式數(shù)據(jù)庫進(jìn)行數(shù)據(jù)組織的最小單元,每個區(qū)間23可以包括有多個數(shù)據(jù)單元24,每個數(shù)據(jù)單元可以通過其數(shù)據(jù)單元標(biāo)識來區(qū)分和識別。具體的,可以通過設(shè)定的數(shù)據(jù)模型來將需要存儲的數(shù)據(jù)格式化成多個數(shù)據(jù)單元。
[0093]通過區(qū)間管理單元22,可以維護(hù)包括多個數(shù)據(jù)單元24的區(qū)間23的區(qū)間信息。也就是說,每個節(jié)點中,可以包括多個區(qū)間23 ;區(qū)間23是分布式數(shù)據(jù)庫進(jìn)行數(shù)據(jù)管理的最小單元。每個區(qū)間可以通過其區(qū)間標(biāo)識來區(qū)分和識別;
[0094]區(qū)間23根據(jù)其所屬的節(jié)點的性質(zhì)可以分為主分區(qū)和備份分區(qū)兩種,即,主節(jié)點中所包括的分區(qū)可以稱之為主分區(qū),備份節(jié)點中的分區(qū)可以稱之為備份分區(qū)。主分區(qū)與備份分區(qū)一一對應(yīng),即主服務(wù)器集群中的主區(qū)間I在備份服務(wù)器集群中有對應(yīng)的備份分區(qū)1,主服務(wù)器集群中的主區(qū)間2在備份服務(wù)器集群中有對應(yīng)的備份分區(qū)2,以此類推;其中,備份分區(qū)通過和主分區(qū)同步來備份主分區(qū)中的數(shù)據(jù)。
[0095]此外,還可以通過分別為主分區(qū)和備份分區(qū)設(shè)有區(qū)間標(biāo)識,并通過所述區(qū)間標(biāo)識將對應(yīng)的主分區(qū)和備份分區(qū)加以關(guān)聯(lián)的方式來使主分區(qū)與備份分區(qū)一一對應(yīng)。
[0096]本發(fā)明中的主節(jié)點和備份節(jié)點還包括有區(qū)間哈希樹生成單元25,區(qū)間哈希樹生成單元25根據(jù)數(shù)據(jù)單元信息和區(qū)間管理單元22中的區(qū)間信息,通過哈希模型可以為每個區(qū)間生成以數(shù)據(jù)單元的哈希值為葉節(jié)點的區(qū)間哈希樹。
[0097]具體的,完成上述功能可以通過以下方式來實現(xiàn):
[0098]根據(jù)數(shù)據(jù)單元信息和區(qū)間管理單元22的區(qū)間信息構(gòu)造以數(shù)據(jù)單元24為葉節(jié)點的樹結(jié)構(gòu);在實際應(yīng)用中,可以通過樹生成器來實現(xiàn)為每個區(qū)間構(gòu)造以數(shù)據(jù)單元為葉節(jié)點的樹結(jié)構(gòu)。
[0099]根據(jù)哈希模型,計算樹結(jié)構(gòu)每個葉節(jié)點的哈希值,以生成區(qū)間哈希樹。
[0100]在實際應(yīng)用中,可以通過哈希值生成器來根據(jù)樹結(jié)構(gòu)生成區(qū)間哈希樹,這樣,通過為每個區(qū)間生成其對應(yīng)的區(qū)間哈希樹,從而通過建立區(qū)間哈希樹,可以將主節(jié)點中區(qū)間的區(qū)間哈希樹來與相應(yīng)備份節(jié)點中的相應(yīng)區(qū)間的哈希樹的比較來確定是否有需要同步的數(shù)據(jù)單元。
[0101]進(jìn)一步的,在本發(fā)明中,區(qū)間哈希樹生成單元25具體可以包括:樹生成器,用于根據(jù)數(shù)據(jù)單元信息和區(qū)間管理單元的區(qū)間信息構(gòu)造以數(shù)據(jù)單元為葉節(jié)點的樹結(jié)構(gòu);哈希值生成器,用于根據(jù)哈希模型,計算樹結(jié)構(gòu)每個葉節(jié)點的哈希值,以生成所述區(qū)間哈希樹。
[0102]本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0103]對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權(quán)利要求】
1.一種分布式數(shù)據(jù)庫同步方法,其特征在于,分布式數(shù)據(jù)庫包括主服務(wù)器集群和備份服務(wù)器集群,主服務(wù)器集群中主節(jié)點包括一個或多個區(qū)間,備份服務(wù)器集群中備份節(jié)點包括一個或多個區(qū)間,主服務(wù)器集群中每個區(qū)間在備份服務(wù)器集群中都對應(yīng)一個區(qū)間,主服務(wù)器集群包括第一主節(jié)點和第二主節(jié)點,備份服務(wù)器集群包括第一備份節(jié)點和第二備份節(jié)點,所述方法包括: 第一主節(jié)點獲取主服務(wù)器集群中各個主節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以主服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的主服務(wù)器集群哈希樹;其中,主節(jié)點的區(qū)間哈希樹為主節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹; 第一備份節(jié)點獲取備份服務(wù)器集群中各個備份節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以備份服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的備份服務(wù)器集群哈希樹;其中,備份節(jié)點的區(qū)間哈希樹為備份節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹; 第一主節(jié)點通過比較主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹,確定區(qū)間哈希值不一致的第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹; 第二主節(jié)點通過比較第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹,確定第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點需同步的數(shù)據(jù)單元; 第二主節(jié)點根 據(jù)第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點中需同步的數(shù)據(jù)單元進(jìn)行數(shù)據(jù)同步。
2.根據(jù)權(quán)利要求1所述分布式數(shù)據(jù)庫同步方法,其特征在于,所述以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹,具體包括: 根據(jù)數(shù)據(jù)單元信息和區(qū)間信息為每個區(qū)間構(gòu)造以數(shù)據(jù)單元為葉節(jié)點的樹結(jié)構(gòu); 根據(jù)哈希模型,計算所述樹結(jié)構(gòu)每個葉節(jié)點的哈希值,以生成所述區(qū)間哈希樹; 為每個區(qū)間哈希樹加入對應(yīng)的區(qū)間標(biāo)識。
3.根據(jù)權(quán)利要求2所述分布式數(shù)據(jù)庫同步系統(tǒng),其特征在于,所述主服務(wù)器集群中每個區(qū)間在備份服務(wù)器中都對應(yīng)一個區(qū)間,具體的包括: 分別為所述主服務(wù)器集群中每個區(qū)間和所述備份服務(wù)器中每個區(qū)間設(shè)有區(qū)間標(biāo)識; 將所述主服務(wù)器集群中每個區(qū)間的區(qū)間標(biāo)識和對應(yīng)的備份服務(wù)器中區(qū)間的區(qū)間標(biāo)識加以關(guān)聯(lián)。
4.根據(jù)權(quán)利要求3所述分布式數(shù)據(jù)庫同步系統(tǒng),其特征在于, 所述第一主節(jié)點在多個主節(jié)點中選舉產(chǎn)生;所述第一備份節(jié)點在多個備份節(jié)點中選舉產(chǎn)生。
5.一種分布式數(shù)據(jù)庫同步系統(tǒng),其特征在于,所述分布式數(shù)據(jù)庫同步系統(tǒng)包括主服務(wù)器集群和備份服務(wù)器集群,主服務(wù)器集群中主節(jié)點包括一個或多個區(qū)間,備份服務(wù)器集群中備份節(jié)點包括一個或多個區(qū)間,主服務(wù)器集群中每個區(qū)間在備份服務(wù)器集群中都對應(yīng)一個區(qū)間,主服務(wù)器集群包括第一主節(jié)點和第二主節(jié)點,備份服務(wù)器集群包括第一備份節(jié)點和第二備份節(jié)點; 第一主節(jié)點包括主服務(wù)器集群哈希樹生成單元,用于獲取主服務(wù)器集群中各個主節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以主服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的主服務(wù)器集群哈希樹;其中,主節(jié)點的區(qū)間哈希樹為主節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹; 第一備份節(jié)點包括備份服務(wù)器集群哈希樹生成單元,用于獲取備份服務(wù)器集群中各個備份節(jié)點的所有區(qū)間哈希樹的根節(jié)點的區(qū)間哈希值,并生成以備份服務(wù)器集群中所述區(qū)間哈希值為葉節(jié)點的備份服務(wù)器集群哈希樹;其中,備份節(jié)點的區(qū)間哈希樹為備份節(jié)點以區(qū)間中的數(shù)據(jù)單元為葉節(jié)點構(gòu)造的哈希樹; 第一主節(jié)點包括區(qū)間確定單元,用于通過比較主服務(wù)器集群哈希樹和備份服務(wù)器集群哈希樹,確定區(qū)間哈希值不一致的第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹; 第二主節(jié)點包括數(shù)據(jù)確定單元,用于通過比較第二主節(jié)點的區(qū)間哈希樹和第二備份節(jié)點的區(qū)間哈希樹,確定第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點需同步的數(shù)據(jù)單元; 第二主節(jié)點包括同步單元,用于根據(jù)第二主節(jié)點中需同步的數(shù)據(jù)單元和第二備份節(jié)點中需同步的數(shù)據(jù)單元進(jìn)行數(shù)據(jù)同步。
6.根據(jù)權(quán)利要求5所述分布式數(shù)據(jù)庫同步系統(tǒng),其特征在于,所述主服務(wù)器集群哈希樹生成單元和所述備份服務(wù)器集群哈希樹生成單元均包括區(qū)間哈希樹生成模塊,所述區(qū)間哈希樹生成模塊包括: 樹生成器,用于根據(jù)數(shù)據(jù)管理單元的數(shù)據(jù)單元信息和區(qū)間管理單元的區(qū)間信息為每個區(qū)間構(gòu)造以數(shù)據(jù)單元為葉節(jié)點的樹結(jié)構(gòu); 哈希值生成器,用于根據(jù)哈希模型,計算所述樹結(jié)構(gòu)每個葉節(jié)點的哈希值,以生成所述區(qū)間哈希樹; 區(qū)間標(biāo)識單元,用于為每個區(qū)間哈希樹加入?yún)^(qū)間標(biāo)識。
7.根據(jù)權(quán)利要求6所述分布式數(shù)據(jù)庫同步系統(tǒng),其特征在于,所述主服務(wù)器集群和所述備份服務(wù)器集群均包括: 選舉單元,用于在多個所述主節(jié)點中確定所述第一主節(jié)點,或,在多個所述備份節(jié)點中確定所述第一備份節(jié)點。
【文檔編號】G06F17/30GK103902617SQ201210586458
【公開日】2014年7月2日 申請日期:2012年12月28日 優(yōu)先權(quán)日:2012年12月28日
【發(fā)明者】朱俊華 申請人:華為技術(shù)有限公司