專利名稱:分布式數(shù)據(jù)庫(kù)同步方法、設(shè)備及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù),尤其涉及一種分布式數(shù)據(jù)庫(kù)同步方法、設(shè)備及系統(tǒng)。
背景技術(shù):
分布式數(shù)據(jù)庫(kù)系統(tǒng)由若干個(gè)站集合而成。這些站又稱為節(jié)點(diǎn)或代理(Agent),它們 在通訊網(wǎng)絡(luò)中聯(lián)接在一起。每個(gè)節(jié)點(diǎn)是一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)系統(tǒng),包括自己的數(shù)據(jù)庫(kù)、中央處 理機(jī)、終端以及局部數(shù)據(jù)庫(kù)管理系統(tǒng)。分布式數(shù) 據(jù)庫(kù)系統(tǒng)可以看作是一系列集中式數(shù)據(jù)庫(kù) 系統(tǒng)的聯(lián)合,在邏輯上屬于同一系統(tǒng),但在物理結(jié)構(gòu)上是分布式的。從用戶的角度看,一個(gè) 分布式數(shù)據(jù)庫(kù)系統(tǒng)在邏輯上和集中式數(shù)據(jù)庫(kù)系統(tǒng)一樣,用戶可以在任何一個(gè)局域網(wǎng)執(zhí)行全 局應(yīng)用,猶如那些數(shù)據(jù)是存儲(chǔ)在同一臺(tái)計(jì)算機(jī)上,由一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)管理一樣。為保證用戶能夠在本地錄入、查詢或者維護(hù)數(shù)據(jù)庫(kù),實(shí)行局部控制,必須保證數(shù)據(jù) 在分布式數(shù)據(jù)庫(kù)系統(tǒng)下各個(gè)節(jié)點(diǎn)間數(shù)據(jù)同步的實(shí)時(shí)可靠,使整個(gè)系統(tǒng)中數(shù)據(jù)一致。現(xiàn)有一種應(yīng)用于主從式模式數(shù)據(jù)庫(kù)的離線復(fù)制的同步方法,在主從式模式中主數(shù) 據(jù)庫(kù)被非同步(非實(shí)時(shí))的復(fù)制到備用服務(wù)器。主從模式即主備方式,主設(shè)備對(duì)外提供服 務(wù),而備用設(shè)備提供備份;當(dāng)主設(shè)備異常時(shí),備用設(shè)備轉(zhuǎn)為主設(shè)備提供服務(wù),原來(lái)的主設(shè)備 轉(zhuǎn)為備用設(shè)備?,F(xiàn)有另一種應(yīng)用于主從式模式數(shù)據(jù)庫(kù)的在線復(fù)制的同步方法,主數(shù)據(jù)庫(kù)被 同步(實(shí)時(shí))的復(fù)制到備用服務(wù)器的?,F(xiàn)有另一種應(yīng)用于分布式高速緩存的同步方法,中 心服務(wù)器中的數(shù)據(jù)更新廣播傳送給各個(gè)節(jié)點(diǎn)的高速緩存管理器,這些節(jié)點(diǎn)根據(jù)最新數(shù)據(jù)更 新本地的高速緩存管理器。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),現(xiàn)有的數(shù)據(jù)庫(kù)同步方法僅能應(yīng)用于從主服務(wù) 器同步到備用服務(wù)器,或者從主服務(wù)器同步到用戶側(cè)高速緩存管理器(用戶側(cè)高速緩存為 只讀型)的特殊情況,不能應(yīng)用于普通模式的分布式數(shù)據(jù)庫(kù)。即沒(méi)有一種應(yīng)用于非主從式、 非高速緩存的可靠、高效的同步方法,使普通的分布式數(shù)據(jù)庫(kù)上各個(gè)節(jié)點(diǎn)間的數(shù)據(jù)一致、完
iF. ο
發(fā)明內(nèi)容
本發(fā)明實(shí)施例解決的技術(shù)問(wèn)題在于提出了一種分布式數(shù)據(jù)庫(kù)同步方法、設(shè)備及系 統(tǒng),使普通的分布式數(shù)據(jù)庫(kù)上各個(gè)節(jié)點(diǎn)間的數(shù)據(jù)一致、完整。為了達(dá)到上述技術(shù)效果,本發(fā)明實(shí)施例的一種分布式數(shù)據(jù)庫(kù)同步方法,該方法包 括中心節(jié)點(diǎn)接收第一節(jié)點(diǎn)發(fā)送的同步操作消息,所述同步操作消息為所述第一節(jié)點(diǎn) 根據(jù)用戶請(qǐng)求更新該第一節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)后生成;所述中心節(jié)點(diǎn)根據(jù)所述同步操作消息 更新該中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù),并向所述其它節(jié)點(diǎn)發(fā)送所述同步操作消息;以便于所述其 它節(jié)點(diǎn)根據(jù)所述同步操作消息更新該其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);所述方法進(jìn)一步包括所述中心節(jié)點(diǎn)根據(jù)所述接收的同步操作消息生成并保存數(shù)據(jù)同步標(biāo)識(shí),所述數(shù)據(jù)同步標(biāo)識(shí)與所述同步操作消息一一對(duì)應(yīng);所述中心節(jié)點(diǎn)將所述數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給所述第一節(jié)點(diǎn)和所述其它節(jié)點(diǎn),所述第一節(jié)點(diǎn)和所述其它節(jié)點(diǎn)接收并保存所述數(shù)據(jù)同步標(biāo)識(shí);所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)在特定時(shí)刻計(jì)算出所述第一節(jié)點(diǎn)或其它節(jié)點(diǎn)保存 的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)與所述中心節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)的差值;如果所述計(jì)算出的差值大于或等于預(yù)設(shè)閾值,則所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)根 據(jù)所述中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更新所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。相應(yīng)的,本發(fā)明實(shí)施例還提出一種用于分布式數(shù)據(jù)庫(kù)的節(jié)點(diǎn),所述節(jié)點(diǎn)包括第一接收單元,用于接收用戶請(qǐng)求;第一更新單元,與所述第一接收單元連接,用于根據(jù)所述用戶請(qǐng)求更新本地?cái)?shù)據(jù) 庫(kù),并生成同步操作消息;第一發(fā)送單元,與所述第一更新單元連接,用于將所述同步操作消息發(fā)送給中心 節(jié)點(diǎn)進(jìn)行同步處理;第二接收單元,用于接收中心節(jié)點(diǎn)發(fā)送的同步操作消息和/或數(shù)據(jù)同步標(biāo)識(shí);第二更新單元,與所述第二接收單元連接,用于根據(jù)所述同步操作消息更新所述 本地?cái)?shù)據(jù)庫(kù);保存標(biāo)識(shí)單元,與所述第二接收單元連接,用于保存所述數(shù)據(jù)同步標(biāo)識(shí);計(jì)算單元,與所述保存標(biāo)識(shí)單元連接,用于在特定時(shí)刻計(jì)算所述節(jié)點(diǎn)中保存的數(shù) 據(jù)同步標(biāo)識(shí)個(gè)數(shù)與所述中心節(jié)點(diǎn)中保存的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)的差值;判斷單元,用于判斷所述計(jì)算單元計(jì)算得到的差值是否大于或者等于一閾值;修復(fù)單元,當(dāng)所述判斷單元的判斷結(jié)果為是時(shí),則根據(jù)所述中心節(jié)點(diǎn)的中央數(shù)據(jù) 庫(kù)的全部數(shù)據(jù)更新所述節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);相應(yīng)的,本發(fā)明實(shí)施例還提出用于分布式數(shù)據(jù)庫(kù)的中心節(jié)點(diǎn),所述中心節(jié)點(diǎn)包 括中央接收單元,用于接收第一節(jié)點(diǎn)發(fā)送的同步操作消息;中央更新單元,與所述中央接收單元連接,用于根據(jù)所述同步操作消息更新中央 數(shù)據(jù)庫(kù),并生成與所述同步操作消息一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí);中央發(fā)送單元,與所述中央更新單元連接,用于將所述數(shù)據(jù)同步標(biāo)識(shí)反饋給所述 第一節(jié)點(diǎn),并將所述同步操作消息和所述數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給其它節(jié)點(diǎn),以便于所述第一 節(jié)點(diǎn)或者其它節(jié)點(diǎn)在特定時(shí)刻計(jì)算所述節(jié)點(diǎn)中保存的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)與所述中心節(jié)點(diǎn) 中保存的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)的差值,如果所述計(jì)算出的差值大于或等于預(yù)設(shè)閾值,則所述 第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)根據(jù)所述中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更新所述第一節(jié)點(diǎn) 或所述其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。本發(fā)明實(shí)施例還提出一種分布式數(shù)據(jù)庫(kù)同步系統(tǒng),該系統(tǒng)包括配置有中央數(shù)據(jù)庫(kù) 的中心節(jié)點(diǎn),配置有本地?cái)?shù)據(jù)庫(kù)的至少兩個(gè)節(jié)點(diǎn),其中第一節(jié)點(diǎn),根據(jù)用戶請(qǐng)求更新該第一節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù),生成同步操作消息,并將 所述同步操作消息發(fā)送給所述中心節(jié)點(diǎn);所述中心節(jié)點(diǎn),根據(jù)所述同步操作消息更新中央數(shù)據(jù)庫(kù),并生成與所述同步操作消息一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí),將所述數(shù)據(jù)同步標(biāo)識(shí)反饋給所述第一節(jié)點(diǎn),并將所述同步 操作消息和所述數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給其它節(jié)點(diǎn);所述其它節(jié)點(diǎn),根據(jù)所述同步操作消息更新該其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)進(jìn)一步用于在特定時(shí)刻計(jì)算出所述第一節(jié)點(diǎn)或其 它節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)與所述中心節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)的差值;如 果所述計(jì)算出的差值大于或等于預(yù)設(shè)閾值,則所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)根據(jù)所述中心 節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更新所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。通過(guò)實(shí)施本發(fā)明實(shí)施例的分布式數(shù)據(jù)庫(kù)同步方法、設(shè)備及系統(tǒng),其中一個(gè)節(jié)點(diǎn)的 節(jié)點(diǎn)通過(guò)將同步操作消息發(fā)送到中心節(jié)點(diǎn),并由中心節(jié)點(diǎn)將所述同步操作消息發(fā)送到其它 節(jié)點(diǎn),所述中心節(jié)點(diǎn)和其它節(jié)點(diǎn)根據(jù)所述同步操作消息進(jìn)行數(shù)據(jù)庫(kù)更新,使得整個(gè)分布式 數(shù)據(jù)庫(kù)系統(tǒng)的所有節(jié)點(diǎn)的數(shù)據(jù)庫(kù)保持一致性,實(shí)現(xiàn)了分布式數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)同步,并提 高了分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步的可靠性和高效性。
圖1是本發(fā)明實(shí)施例的一種分布式數(shù)據(jù)庫(kù)同步方法的消息流程圖;圖2是本發(fā)明實(shí)施例的一種分布式數(shù)據(jù)庫(kù)同步方法的消息流程圖;圖3是本發(fā)明實(shí)施例的一種用于分布式數(shù)據(jù)庫(kù)的節(jié)點(diǎn)結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例的一種用于分布式數(shù)據(jù)庫(kù)的中心節(jié)點(diǎn)結(jié)構(gòu)示意圖;圖5是本發(fā)明實(shí)施例的一種分布式數(shù)據(jù)庫(kù)同步系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明。本發(fā)明各實(shí)施例中的分布式數(shù)據(jù)庫(kù)包括一個(gè)中心節(jié)點(diǎn),該中心節(jié)點(diǎn)配置有中央數(shù) 據(jù)庫(kù),以及另外一個(gè)或多個(gè)節(jié)點(diǎn),各節(jié)點(diǎn)包括(或者配置有)本地?cái)?shù)據(jù)庫(kù),后文以第一節(jié)點(diǎn) 和其它節(jié)點(diǎn)為例。一個(gè)具體實(shí)施例中,提供一種分布式數(shù)據(jù)庫(kù)同步方法,該方法包括第一節(jié)點(diǎn)根據(jù) 用戶請(qǐng)求更新該第一節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù),生成同步操作消息,并將該同步操作消息發(fā)送給 中心節(jié)點(diǎn);該中心節(jié)點(diǎn)根據(jù)該第一節(jié)點(diǎn)發(fā)送的同步操作消息更新中央數(shù)據(jù)庫(kù),并生成數(shù)據(jù) 同步標(biāo)識(shí),將該數(shù)據(jù)同步標(biāo)識(shí)反饋給該第一節(jié)點(diǎn),并將該同步操作消息和數(shù)據(jù)同步標(biāo)識(shí)發(fā) 送給其它節(jié)點(diǎn);該其它節(jié)點(diǎn),根據(jù)該同步操作消息更新該其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);該中心 節(jié)點(diǎn)根據(jù)該接收的同步操作消息生成并保存數(shù)據(jù)同步標(biāo)識(shí),該數(shù)據(jù)同步標(biāo)識(shí)與該同步操作 消息一一對(duì)應(yīng);該中心節(jié)點(diǎn)將該數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給該第一節(jié)點(diǎn)和該其它節(jié)點(diǎn),該第一節(jié) 點(diǎn)和該其它節(jié)點(diǎn)接收并保存該數(shù)據(jù)同步標(biāo)識(shí);該第一節(jié)點(diǎn)或該其它節(jié)點(diǎn)在特定時(shí)刻計(jì)算出 該第一節(jié)點(diǎn)或其它節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)與該中心節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的 個(gè)數(shù)的差值;如果該計(jì)算出的差值大于或等于預(yù)設(shè)閾值,則該第一節(jié)點(diǎn)或該其它節(jié)點(diǎn)根據(jù) 該中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更新該第一節(jié)點(diǎn)或該其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。如圖1所示,為另一個(gè)分布式數(shù)據(jù)庫(kù)同步方法實(shí)施例的消息流程圖。在該同步方 法中,包括步驟SOl 接收用戶發(fā)送的更新請(qǐng)求。
步驟S02 根據(jù)該用戶的更新請(qǐng)求更新本地?cái)?shù)據(jù)庫(kù)(Database,DB),并生成同步操 作(Synchronization Operation, SYNC OP)消息。步驟S03 將該同步操作消息SYNC OP發(fā)送給中心節(jié)點(diǎn)。步驟S04 中心節(jié)點(diǎn)根據(jù)該第一節(jié)點(diǎn)發(fā)送的同步操作消息SYNC OP更新該中心節(jié) 點(diǎn)的中央數(shù)據(jù)庫(kù),生成數(shù)據(jù)同步標(biāo)識(shí)(Synchronization Identif ication,SYNC ID)。例如, 該數(shù)據(jù)同步標(biāo)識(shí)可以為同步序列號(hào),當(dāng)然其它實(shí)施方式不限于此。步驟S05 該中心節(jié)點(diǎn)保存同步操作消息和數(shù)據(jù)同步標(biāo)識(shí)。
具體的,中心節(jié)點(diǎn)可以將該同步操作消息SYNC OP和該數(shù)據(jù)同步標(biāo)識(shí)SYNC ID 一一對(duì)應(yīng)的保存到同步操作列表(SYNC HIST)中。步驟S06 中心節(jié)點(diǎn)將該數(shù)據(jù)同步標(biāo)識(shí)SYNC ID反饋給該第一節(jié)點(diǎn)。步驟S07,第一節(jié)點(diǎn)接收該數(shù)據(jù)同步標(biāo)識(shí)SYNC ID,并將該數(shù)據(jù)同步標(biāo)識(shí)保存在本 地?cái)?shù)據(jù)庫(kù)中。 步驟S08 該中心節(jié)點(diǎn)將該同步操作消息SYNC OP和該數(shù)據(jù)同步標(biāo)識(shí)SYNC OP發(fā) 送給其它節(jié)點(diǎn)。步驟S09 其它節(jié)點(diǎn)接收該中心節(jié)點(diǎn)發(fā)送的同步操作消息SYNC OP和該數(shù)據(jù)同步 標(biāo)識(shí)SYNC ID,根據(jù)該同步操作消息更新本地?cái)?shù)據(jù)庫(kù);步驟SlO 其它節(jié)點(diǎn)保存接收到的該數(shù)據(jù)同步標(biāo)識(shí)。通過(guò)實(shí)施本發(fā)明實(shí)施例的分布式數(shù)據(jù)庫(kù)同步方法,其中一個(gè)節(jié)點(diǎn)通過(guò)將本地同步 操作消息發(fā)送到中心節(jié)點(diǎn),并由中心節(jié)點(diǎn)將同步操作消息發(fā)送到其他節(jié)點(diǎn),中心節(jié)點(diǎn)和其 他節(jié)點(diǎn)根據(jù)同步操作消息進(jìn)行數(shù)據(jù)庫(kù)更新,使得整個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng)的所有節(jié)點(diǎn)的數(shù)據(jù) 庫(kù)保持一致性,實(shí)現(xiàn)了分布式數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)同步,并提高了分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步的 可靠性和高效性。該同步方法使得非主從式、非高速緩存情況下的分布式數(shù)據(jù)庫(kù)能夠進(jìn)行 可靠的數(shù)據(jù)同步。在某一特定時(shí)刻,例如當(dāng)分布式數(shù)據(jù)庫(kù)系統(tǒng)啟動(dòng)時(shí),以及/或者系統(tǒng)啟動(dòng)后每隔 一時(shí)間段(該時(shí)間段可以固定或者變化),該分布式數(shù)據(jù)庫(kù)系統(tǒng)中的各節(jié)點(diǎn)(例如第一節(jié) 點(diǎn)或其它節(jié)點(diǎn))計(jì)算該中心節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)與本節(jié)點(diǎn)(第一節(jié)點(diǎn)或其它節(jié) 點(diǎn))保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)的差值;并判斷該差值是否大于或者等于一閾值,如果該 差值大于或者等于該閾值,根據(jù)該中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更新本節(jié)點(diǎn)(第一節(jié) 點(diǎn)或其它節(jié)點(diǎn))的本地?cái)?shù)據(jù)庫(kù)。如果該差值小于該閾值,則確定該第一節(jié)點(diǎn)或該其它節(jié)點(diǎn) 相對(duì)于該中心節(jié)點(diǎn)缺失的數(shù)據(jù)同步標(biāo)識(shí),并根據(jù)該缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消 息更新該第一節(jié)點(diǎn)或該其它的節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。如果該差值小于該閾值,該第一節(jié)點(diǎn)或 該其它節(jié)點(diǎn)也可以不做處理。如圖2所示,上述處理流程的具體步驟如下步驟S21 分布式數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)節(jié)點(diǎn)獲取中心節(jié)點(diǎn)的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù) fn息;步驟S22 該節(jié)點(diǎn)計(jì)算中心節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)與該節(jié)點(diǎn)保存的數(shù)據(jù) 同步標(biāo)識(shí)的個(gè)數(shù)的差值。例如,該節(jié)點(diǎn)從中心節(jié)點(diǎn)獲取的同步操作列表包含了 4次同步操作,數(shù)據(jù)同步標(biāo) 識(shí)分別是1、2、3、4。但是該節(jié)點(diǎn)保存的歷史同步操作信息有兩次同步操作,本地同步標(biāo)識(shí)分別是1、2。通過(guò)計(jì)算,中心節(jié)點(diǎn)的數(shù)據(jù)同步標(biāo)識(shí)與該節(jié)點(diǎn)的本地同步標(biāo)識(shí)差值為2,即中心節(jié)點(diǎn)與該節(jié)點(diǎn)有兩次操作沒(méi)有同步成功,中心節(jié)點(diǎn)與該節(jié)點(diǎn)的數(shù)據(jù)是不一致的。步驟S23 該節(jié)點(diǎn)判斷該差值是否大于或者等于一閾值,如果是,執(zhí)行步驟24;否 則執(zhí)行步驟25。例如,如果該閾值為2,上述S22的例子中差值2等于該閾值2,則執(zhí)行步驟24。例 如,如果該閾值為3,上述S22的例子中差值2小于該閾值3,則執(zhí)行步驟25。該閾值是系統(tǒng)預(yù)先設(shè)定的值,可以為2、3、4或者5,或者其它數(shù)值,以較好的保持 分布式操作系統(tǒng)的同步性能為佳。步驟S24 該節(jié)點(diǎn)獲取完整的中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的數(shù)據(jù)來(lái)替換該節(jié)點(diǎn)的本地 數(shù)據(jù)庫(kù);步驟S25 該節(jié)點(diǎn)根據(jù)該缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消息更新該節(jié)點(diǎn)的 本地?cái)?shù)據(jù)庫(kù)??蛇x地,如果該差值小于該閾值,也可以采用不做處理的方法。具體的,該根據(jù)缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消息更新該第一節(jié)點(diǎn)或者該 其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)可以包括查詢?cè)撝行墓?jié)點(diǎn)上保存的同步操作列表,從該中心節(jié)點(diǎn) 獲取該缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消息,根據(jù)該獲取的同步操作消息更新該第一 節(jié)點(diǎn)或該其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。通過(guò)實(shí)施本發(fā)明實(shí)施例的分布式數(shù)據(jù)庫(kù)同步方法,其中一個(gè)節(jié)點(diǎn)通過(guò)將本地同步 操作消息發(fā)送到中心節(jié)點(diǎn),并由中心節(jié)點(diǎn)將同步操作消息發(fā)送到其它節(jié)點(diǎn),中心節(jié)點(diǎn)和其 它節(jié)點(diǎn)根據(jù)同步操作消息進(jìn)行數(shù)據(jù)庫(kù)更新,使得整個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng)的所有節(jié)點(diǎn)的數(shù)據(jù) 庫(kù)保持一致性,實(shí)現(xiàn)了分布式數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)同步,并提高了分布式數(shù)據(jù)庫(kù)數(shù)據(jù)同步的 可靠性和高效性。該同步方法使得非主從式、非高速緩存情況下的分布式數(shù)據(jù)庫(kù)能夠進(jìn)行 可靠的數(shù)據(jù)同步。通過(guò)上述數(shù)據(jù)同步的方法,分布式數(shù)據(jù)庫(kù)系統(tǒng)中的各節(jié)點(diǎn)可以自動(dòng)進(jìn)行 數(shù)據(jù)更新,并且僅在滿足一定條件下進(jìn)行更新處理,進(jìn)一步提高了普通的分布式數(shù)據(jù)庫(kù)的 數(shù)據(jù)同步的效率。需要說(shuō)明的是,上述本發(fā)明實(shí)施例所提出的分布式數(shù)據(jù)庫(kù)同步方法可以通過(guò)計(jì)算 機(jī)程序、計(jì)算機(jī)指令序列或可編程邏輯器件編程實(shí)現(xiàn),該程序可以保存到存儲(chǔ)介質(zhì)上,例如 光盤或磁盤、硬盤,以及任何其它的本領(lǐng)域技術(shù)人員可以知道的存儲(chǔ)介質(zhì),如閃存等。其它 實(shí)施方式中,也可以由硬件實(shí)現(xiàn)。相應(yīng)的,本發(fā)明實(shí)施例還提出一種分布式數(shù)據(jù)庫(kù)中的節(jié)點(diǎn),其結(jié)構(gòu)示意圖如圖3 所示。該節(jié)點(diǎn)包括第一接收單元31,用于接收用戶請(qǐng)求;第一更新單元32,根據(jù)第一接收單元31接收的用戶請(qǐng)求更新本地?cái)?shù)據(jù)庫(kù),并生成 同步操作消息;第一發(fā)送單元33,將第一更新單元32生成的同步操作消息發(fā)送給中心節(jié)點(diǎn)進(jìn)行 同步處理。第二接收單元41,用于接收中心節(jié)點(diǎn)發(fā)送的同步操作消息和/或數(shù)據(jù)同步標(biāo)識(shí);第二更新單元42,用于根據(jù)該第二接收單元41接收的同步操作消息更新該節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);保存標(biāo)識(shí)單元43,用于保存該數(shù)據(jù)同步標(biāo)識(shí)。該計(jì)算單元44,用于計(jì)算該節(jié)點(diǎn)中保存的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)與該中心節(jié)點(diǎn)中保存 的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)的差值;判斷單元45,用于判斷該計(jì)算單元44計(jì)算得到的差值是否大于或者等于一閾值;
修復(fù)單元46,當(dāng)判斷結(jié)果為是時(shí),則根據(jù)該中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更 新該節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);在其它的實(shí)施方式中,該修復(fù)單元46可以進(jìn)一步用于當(dāng)該判斷單元的判斷結(jié)果 為否時(shí),確定該節(jié)點(diǎn)相對(duì)于該中心節(jié)點(diǎn)缺失的數(shù)據(jù)同步標(biāo)識(shí),并根據(jù)該缺失的數(shù)據(jù)同步標(biāo) 識(shí)對(duì)應(yīng)的同步操作消息更新該節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù),或者,不做處理。相應(yīng)地,本發(fā)明實(shí)施例還提出一種分布式數(shù)據(jù)庫(kù)的中心節(jié)點(diǎn),其結(jié)構(gòu)示意圖如圖4 所示。該中心節(jié)點(diǎn)包括中央接收單元51,用于接收第一節(jié)點(diǎn)發(fā)送的同步操作消息;中央更新單元52,用于根據(jù)該中央接收單元51接收的同步操作消息更新中央數(shù) 據(jù)庫(kù),并生成與該同步操作消息一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí);中央發(fā)送單元53,用于將該中央更新單元52生成的數(shù)據(jù)同步標(biāo)識(shí)反饋給第一節(jié) 點(diǎn),并將該同步操作操作消息和該數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給其它節(jié)點(diǎn),以便于該第一節(jié)點(diǎn)和其 它節(jié)點(diǎn)進(jìn)行前述同步方法所示的同步處理。該第一節(jié)點(diǎn)和其它節(jié)點(diǎn)的處理可以參考圖1、圖 2及其說(shuō)明,在此不贅述。具體的實(shí)施方式中,中心節(jié)點(diǎn)可以包括同步操作列表54,保存該同步操作消息以 及與該同步操作消息一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí)。相應(yīng)地,本發(fā)明實(shí)施例還提出一種分布式數(shù)據(jù)庫(kù)同步系統(tǒng),該系統(tǒng)包括配置有中 心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù),至少兩個(gè)配置有節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。如圖5所示的該分布式數(shù)據(jù)庫(kù)同步系統(tǒng)包括一個(gè)中心節(jié)點(diǎn),該中心節(jié)點(diǎn)配置有中 央數(shù)據(jù)庫(kù),以及另外一個(gè)或多個(gè)節(jié)點(diǎn),各節(jié)點(diǎn)或者配置有本地?cái)?shù)據(jù)庫(kù)。其它本實(shí)施例以兩個(gè) 節(jié)點(diǎn)為例,其中,第一節(jié)點(diǎn)62根據(jù)用戶請(qǐng)求更新該第一節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù),生成同步操作消息,并 將該同步操作消息發(fā)送給中心節(jié)點(diǎn)61 ;中心節(jié)點(diǎn)61根據(jù)第一節(jié)點(diǎn)62發(fā)送的同步操作消 息更新中央數(shù)據(jù)庫(kù),并生成與該同步操作消息一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí),將該數(shù)據(jù)同步標(biāo) 識(shí)反饋給第一節(jié)點(diǎn)62,并將該同步操作消息和數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給其它節(jié)點(diǎn)63 ;其它節(jié)點(diǎn) 63,根據(jù)該同步操作消息其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);該第一節(jié)點(diǎn)62或該其它節(jié)點(diǎn)63進(jìn)一步用 于在特定時(shí)刻計(jì)算出該第一節(jié)點(diǎn)62或其它節(jié)點(diǎn)63保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)與該中心節(jié) 點(diǎn)61保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)的差值;如果該計(jì)算出的差值大于或等于預(yù)設(shè)閾值,則該 第一節(jié)點(diǎn)62或該其它節(jié)點(diǎn)63根據(jù)該中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更新該第一節(jié)點(diǎn)62 或該其它節(jié)點(diǎn)63的本地?cái)?shù)據(jù)庫(kù)。上述分布式數(shù)據(jù)庫(kù)同步系統(tǒng)中包括的第一節(jié)點(diǎn)62或者其它節(jié)點(diǎn)63的實(shí)施例可以 參考圖3、圖4及其說(shuō)明,中心節(jié)點(diǎn)61的實(shí)施例可以參考圖6及其說(shuō)明,在此不贅述。上述分布式數(shù)據(jù)庫(kù)同步系統(tǒng)在應(yīng)用時(shí),可以執(zhí)行前述圖1、圖2以及其說(shuō)明的數(shù)據(jù)同步方法,在此也不贅述。本領(lǐng)域普通技術(shù)人員可以理解上述分布式數(shù)據(jù)庫(kù)同步方法、設(shè)備及系統(tǒng)的實(shí)施例 中的部分或者全部模塊或者單元的劃分僅僅是舉例,可以進(jìn)行不同的組合或者更細(xì)的劃 分。其中的部分或者全部模塊或者單元可以為硬件、軟件,或者為軟件和硬件的結(jié)合。由軟 件完成的部分可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方 法的實(shí)施例的流程。其中,該程序的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。
通過(guò)實(shí)施本發(fā)明實(shí)施例的分布式數(shù)據(jù)庫(kù)同步方法、設(shè)備及系統(tǒng),節(jié)點(diǎn)可以對(duì)中心 節(jié)點(diǎn)進(jìn)行同步,同時(shí)中心節(jié)點(diǎn)也可對(duì)節(jié)點(diǎn)進(jìn)行同步,雙向可同步措施使得分布式數(shù)據(jù)庫(kù)的 同步更加高效。另一具體實(shí)施例中,分布式數(shù)據(jù)庫(kù)節(jié)點(diǎn)定時(shí)進(jìn)行數(shù)據(jù)庫(kù)修復(fù),進(jìn)一步提高數(shù) 據(jù)同步的全面性和可靠性。以上揭露的僅為本發(fā)明實(shí)施例的一種較佳實(shí)施例,不能以此限定本發(fā)明的權(quán)利范 圍,依照本發(fā)明權(quán)利要求該內(nèi)容所作的等同變化對(duì)本領(lǐng)域技術(shù)人員都是顯而易見(jiàn)的,仍然 屬于本發(fā)明所涵蓋范圍。
權(quán)利要求
一種分布式數(shù)據(jù)庫(kù)同步方法,應(yīng)用于分布式數(shù)據(jù)庫(kù)系統(tǒng),該系統(tǒng)包括中心節(jié)點(diǎn)、第一節(jié)點(diǎn)和至少一個(gè)其它節(jié)點(diǎn),其特征在于,中心節(jié)點(diǎn)接收第一節(jié)點(diǎn)發(fā)送的同步操作消息,所述同步操作消息為所述第一節(jié)點(diǎn)根據(jù)用戶請(qǐng)求更新該第一節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)后生成;所述中心節(jié)點(diǎn)根據(jù)所述同步操作消息更新該中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù),并向所述其它節(jié)點(diǎn)發(fā)送所述同步操作消息;以便于所述其它節(jié)點(diǎn)根據(jù)所述同步操作消息更新該其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);所述方法進(jìn)一步包括所述中心節(jié)點(diǎn)根據(jù)所述接收的同步操作消息生成并保存數(shù)據(jù)同步標(biāo)識(shí),所述數(shù)據(jù)同步標(biāo)識(shí)與所述同步操作消息一一對(duì)應(yīng);所述中心節(jié)點(diǎn)將所述數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給所述第一節(jié)點(diǎn)和所述其它節(jié)點(diǎn),所述第一節(jié)點(diǎn)和所述其它節(jié)點(diǎn)接收并保存所述數(shù)據(jù)同步標(biāo)識(shí);所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)在特定時(shí)刻計(jì)算出所述節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)與所述中心節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)的差值;如果所述計(jì)算出的差值大于或等于預(yù)設(shè)閾值,則所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)根據(jù)所述中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更新所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。
2.如權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括如果所述計(jì)算出的差值小于所述預(yù)設(shè)閾值,則確定所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)相對(duì) 于所述中心節(jié)點(diǎn)缺失的數(shù)據(jù)同步標(biāo)識(shí),并根據(jù)所述缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消 息更新所述第一節(jié)點(diǎn)或所述其它的節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。
3.如權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括如果所述計(jì)算出的差值小于所述預(yù)設(shè)閾值,則所述第一節(jié)點(diǎn)或者所述其它節(jié)點(diǎn)不做處理。
4.如權(quán)利要求2所述的方法,其特征在于所述中心節(jié)點(diǎn)生成并保存數(shù)據(jù)同步標(biāo)識(shí)包括所述中心節(jié)點(diǎn)生成數(shù)據(jù)同步標(biāo)識(shí),將所 述同步操作消息和所述數(shù)據(jù)同步標(biāo)識(shí)以一一對(duì)應(yīng)地保存到同步操作列表;所述根據(jù)缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消息更新所述第一節(jié)點(diǎn)或者所述其它 節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)包括查詢所述中心節(jié)點(diǎn)上保存的同步操作列表,從所述中心節(jié)點(diǎn)獲取 所述缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消息,根據(jù)該獲取的同步操作消息更新所述第一 節(jié)點(diǎn)或所述其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。
5.如權(quán)利要求1-4中任意一個(gè)所述的方法,其特征在于,所述在特定時(shí)刻包括在啟動(dòng) 時(shí),或者在間隔一定的時(shí)間段時(shí)。
6.一種分布式數(shù)據(jù)庫(kù)中的節(jié)點(diǎn),其特征在于,所述節(jié)點(diǎn)包括 第一接收單元,用于接收用戶請(qǐng)求;第一更新單元,與所述第一接收單元連接,用于根據(jù)所述用戶請(qǐng)求更新本地?cái)?shù)據(jù)庫(kù),并 生成同步操作消息;第一發(fā)送單元,與所述第一更新單元連接,用于將所述同步操作消息發(fā)送給中心節(jié)點(diǎn) 進(jìn)行同步處理;第二接收單元,用于接收中心節(jié)點(diǎn)發(fā)送的同步操作消息和/或數(shù)據(jù)同步標(biāo)識(shí); 第二更新單元,與所述第二接收單元連接,用于根據(jù)所述同步操作消息更新所述本地?cái)?shù)據(jù)庫(kù);保存標(biāo)識(shí)單元,與所述第二接收單元連接,用于保存所述數(shù)據(jù)同步標(biāo)識(shí)節(jié)點(diǎn); 計(jì)算單元,與所述保存標(biāo)識(shí)單元連接,用于在特定時(shí)刻計(jì)算所述節(jié)點(diǎn)中保存的數(shù)據(jù)同 步標(biāo)識(shí)個(gè)數(shù)與所述中心節(jié)點(diǎn)中保存的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)的差值;判斷單元,用于判斷所述計(jì)算單元計(jì)算得到的差值是否大于或者等于一閾值; 修復(fù)單元,當(dāng)所述判斷單元的判斷結(jié)果為是時(shí),則根據(jù)所述中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的 全部數(shù)據(jù)更新所述節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。
7.根據(jù)權(quán)利要求6所述的節(jié)點(diǎn),其特征在于,所述修復(fù)單元,進(jìn)一步用于當(dāng)所述判斷單元的判斷結(jié)果為否時(shí),確定所述節(jié)點(diǎn)相對(duì)于 所述中心節(jié)點(diǎn)缺失的數(shù)據(jù)同步標(biāo)識(shí),并根據(jù)所述缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消息 更新所述節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù),或者,不做處理。
8.一種用于分布式數(shù)據(jù)庫(kù)的中心節(jié)點(diǎn),其特征在于,所述中心節(jié)點(diǎn)包括 中央接收單元,用于接收第一節(jié)點(diǎn)發(fā)送的同步操作消息;中央更新單元,與所述中央接收單元連接,用于根據(jù)所述同步操作消息更新中央數(shù)據(jù) 庫(kù),并生成與所述同步操作消息一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí);中央發(fā)送單元,與所述中央更新單元連接,用于將所述數(shù)據(jù)同步標(biāo)識(shí)反饋給所述第一 節(jié)點(diǎn),并將所述同步操作消息和所述數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給其它節(jié)點(diǎn),以便于所述第一節(jié)點(diǎn) 或者其它節(jié)點(diǎn)在特定時(shí)刻計(jì)算所述節(jié)點(diǎn)中保存的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)與所述中心節(jié)點(diǎn)中保 存的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)的差值,如果所述計(jì)算出的差值大于或等于預(yù)設(shè)閾值,則所述第一 節(jié)點(diǎn)或所述其它節(jié)點(diǎn)根據(jù)所述中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的全部數(shù)據(jù)更新所述第一節(jié)點(diǎn)或所 述其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。
9.如權(quán)利要求10所述的一種用于分布式數(shù)據(jù)庫(kù)的中心節(jié)點(diǎn),其特征在于,所述中心節(jié) 點(diǎn)還包括同步操作列表,與所述中央更新單元連接,用于保存所述同步操作消息以及與所述同 步操作消息一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí)。
10.一種分布式數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,該系統(tǒng)包括配置有中央數(shù)據(jù)庫(kù)的中心節(jié)點(diǎn), 配置有本地?cái)?shù)據(jù)庫(kù)的第一節(jié)點(diǎn)和其它節(jié)點(diǎn),其中第一節(jié)點(diǎn),根據(jù)用戶請(qǐng)求更新該第一節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù),生成同步操作消息,并將所述 同步操作消息發(fā)送給所述中心節(jié)點(diǎn);所述中心節(jié)點(diǎn),根據(jù)所述同步操作消息更新中央數(shù)據(jù)庫(kù),并生成與所述同步操作消息 一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí),將所述數(shù)據(jù)同步標(biāo)識(shí)反饋給所述第一節(jié)點(diǎn),并將所述同步操作 消息和所述數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給其它節(jié)點(diǎn);所述其它節(jié)點(diǎn),根據(jù)所述同步操作消息更新該其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù); 所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)進(jìn)一步用于在特定時(shí)刻計(jì)算出所述節(jié)點(diǎn)保存的數(shù)據(jù)同 步標(biāo)識(shí)的個(gè)數(shù)與所述中心節(jié)點(diǎn)保存的數(shù)據(jù)同步標(biāo)識(shí)的個(gè)數(shù)的差值;如果所述計(jì)算出的差值 大于或等于預(yù)設(shè)閾值,則所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)根據(jù)所述中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的 全部數(shù)據(jù)更新所述第一節(jié)點(diǎn)或所述其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述第一節(jié)點(diǎn)包括 第一接收單元,用于接收用戶請(qǐng)求;第一更新單元,與所述第一接收單元連接,用于根據(jù)所述用戶請(qǐng)求更新第一數(shù)據(jù)庫(kù),并 生成同步操作消息;第一發(fā)送單元,與所述第一更新單元連接,用于將所述同步操作消息發(fā)送給中心節(jié)點(diǎn) 進(jìn)行同步處理;第二接收單元,用于接收中心節(jié)點(diǎn)發(fā)送的同步操作消息和/或數(shù)據(jù)同步標(biāo)識(shí); 第二更新單元,與所述第二接收單元連接,用于根據(jù)所述同步操作消息更新所述本地 數(shù)據(jù)庫(kù);保存標(biāo)識(shí)單元,與所述第二接收單元連接,用于保存所述數(shù)據(jù)同步標(biāo)識(shí)節(jié)點(diǎn); 計(jì)算單元,與所述保存標(biāo)識(shí)單元連接,用于在特定時(shí)刻計(jì)算所述節(jié)點(diǎn)中保存的數(shù)據(jù)同 步標(biāo)識(shí)個(gè)數(shù)與所述中心節(jié)點(diǎn)中保存的數(shù)據(jù)同步標(biāo)識(shí)個(gè)數(shù)的差值;判斷單元,用于判斷所述計(jì)算單元計(jì)算得到的差值是否大于或者等于一閾值; 修復(fù)單元,當(dāng)所述判斷單元的判斷結(jié)果為是時(shí),則根據(jù)所述中心節(jié)點(diǎn)的中央數(shù)據(jù)庫(kù)的 全部數(shù)據(jù)更新所述節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù);
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述修復(fù)單元,進(jìn)一步用于當(dāng)所述判斷 單元的判斷結(jié)果為否時(shí),確定所述節(jié)點(diǎn)相對(duì)于所述中心節(jié)點(diǎn)缺失的數(shù)據(jù)同步標(biāo)識(shí),并根據(jù) 所述缺失的數(shù)據(jù)同步標(biāo)識(shí)對(duì)應(yīng)的同步操作消息更新所述節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù),或者,不做處 理。
13.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述中心節(jié)點(diǎn)包括 中央接收單元,用于接收所述第一節(jié)點(diǎn)發(fā)送的同步操作消息;中央更新單元,與所述中央接收單元連接,用于根據(jù)所述同步操作消息更新中央數(shù)據(jù) 庫(kù),并生成與所述同步操作消息一一對(duì)應(yīng)的數(shù)據(jù)同步標(biāo)識(shí);中央發(fā)送單元,與所述中央更新單元連接,用于將所述數(shù)據(jù)同步標(biāo)識(shí)反饋給所述第一 節(jié)點(diǎn),并將所述同步操作消息和所述數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給所述其它節(jié)點(diǎn)進(jìn)行同步處理。
全文摘要
本發(fā)明實(shí)施例公開了一種分布式數(shù)據(jù)庫(kù)同步方法、設(shè)備及系統(tǒng),其中分布式數(shù)據(jù)庫(kù)同步方法,包括第一節(jié)點(diǎn)根據(jù)用戶請(qǐng)求更新該第一節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù),生成同步操作消息,并將所述同步操作消息發(fā)送給中心節(jié)點(diǎn);所述中心節(jié)點(diǎn)根據(jù)所述第一節(jié)點(diǎn)發(fā)送的同步操作消息更新中央數(shù)據(jù)庫(kù),并生成數(shù)據(jù)同步標(biāo)識(shí),將所述數(shù)據(jù)同步標(biāo)識(shí)反饋給所述第一節(jié)點(diǎn),并將所述同步操作消息和數(shù)據(jù)同步標(biāo)識(shí)發(fā)送給其它節(jié)點(diǎn);所述其它節(jié)點(diǎn),根據(jù)所述同步操作消息更新該其它節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)。采用本發(fā)明實(shí)施例,使分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)同步更加可靠、高效。
文檔編號(hào)G06F17/30GK101826073SQ20091003767
公開日2010年9月8日 申請(qǐng)日期2009年3月6日 優(yōu)先權(quán)日2009年3月6日
發(fā)明者柯仁, 沙歐, 瓦嘎 申請(qǐng)人:華為技術(shù)有限公司