專利名稱:分布式系統(tǒng)及其數(shù)據(jù)同步方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種分布式系統(tǒng)及其數(shù)據(jù)同步方法。
背景技術(shù):
在分布式環(huán)境下,存在大量的數(shù)據(jù)訪問需求,出于數(shù)據(jù)可靠性和負荷分擔的考 慮,往往采取多個數(shù)據(jù)節(jié)點的方式。為了維護多個數(shù)據(jù)節(jié)點的數(shù)據(jù)一致性,目前一般采用兩種數(shù)據(jù)同步方式主備 同步和對等同步。主備同步(如圖1所示)即所有數(shù)據(jù)節(jié)點分為一個主節(jié)點和多個備節(jié) 點,主節(jié)點可讀可寫,備節(jié)點只讀,數(shù)據(jù)修改從主節(jié)點同步到備節(jié)點;對等同步即所有 數(shù)據(jù)節(jié)點不分主備,均可讀可寫,數(shù)據(jù)修改從任意節(jié)點傳播到其他所有節(jié)點。主備同步方式由于實現(xiàn)相對簡單、可靠,目前被較為廣泛的采用。但是,發(fā)明 人發(fā)現(xiàn)現(xiàn)有技術(shù)存在以下問題由于主節(jié)點只有一個,大量的數(shù)據(jù)需要從主節(jié)點向多個 備節(jié)點同步,主節(jié)點的性能非常容易出現(xiàn)瓶頸。另外,分布式環(huán)境下數(shù)據(jù)節(jié)點一般分布 在多個地區(qū),地區(qū)之間的距離跨度可能比較大,主節(jié)點所在的地區(qū)和其他備節(jié)點所在的 地區(qū)之間的傳輸網(wǎng)絡(luò)帶寬也可能出現(xiàn)瓶頸。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種分布式系統(tǒng)及其數(shù)據(jù)同步方法,以解決現(xiàn)有技術(shù)存在的主 節(jié)點性能、網(wǎng)絡(luò)帶寬容易出現(xiàn)瓶頸的問題。根據(jù)本發(fā)明的一個方面,提供了一種分布式系統(tǒng)的數(shù)據(jù)同步方法,包括設(shè)置 主節(jié)點為根節(jié)點,并將所有備節(jié)點分級為從屬于根節(jié)點的至少兩級;主節(jié)點向其下一級 的一級備節(jié)點進行數(shù)據(jù)同步;一級備節(jié)點繼續(xù)向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù) 同步,直到所有備節(jié)點數(shù)據(jù)同步完畢。優(yōu)選地,所有備節(jié)點分級的級數(shù)不大于三級,且一個備節(jié)點歸屬于一個其上一 級的備節(jié)點管轄。優(yōu)選地,當主節(jié)點和所有備節(jié)點分布在多個地區(qū)時,每個地區(qū)至少包括一個一 級備節(jié)點。優(yōu)選地,每個備節(jié)點管轄的下一級的備節(jié)點為多個。優(yōu)選地,在主節(jié)點向其下一級的一級備節(jié)點進行數(shù)據(jù)同步之前還包括配置數(shù) 據(jù)修改有效所需的成功應答的備節(jié)點的數(shù)量閾值。優(yōu)選地,當將所有備節(jié)點分級為從屬于主節(jié)點的 兩級,且在主節(jié)點配置數(shù)量閾 值時,主節(jié)點向其下一級的一級備節(jié)點進行數(shù)據(jù)同步包括主節(jié)點根據(jù)接收到的客戶 端的數(shù)據(jù)修改請求更新數(shù)據(jù),并向一級備節(jié)點發(fā)送數(shù)據(jù)同步請求;一級備節(jié)點向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到多個備節(jié)點數(shù) 據(jù)同步完畢包括一級備節(jié)點根據(jù)數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向主節(jié)點返回數(shù)據(jù)同步成功響應;主節(jié)點根據(jù)接收到的數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的 數(shù)量是否大于或等于數(shù)量閾值且自身數(shù)據(jù)更新是否成功;若是,則向客戶端返回數(shù)據(jù)修 改成功響應。 優(yōu)選地,當將所有備節(jié)點分級為從屬于主節(jié)點的兩級,且分別在主節(jié)點和一級 備節(jié)點配置數(shù)量閾值時,主節(jié)點向其下一級的一級備節(jié)點進行數(shù)據(jù)同步包括主節(jié)點根據(jù)接收到的客戶 端的數(shù)據(jù)修改請求更新數(shù)據(jù),并向一級備節(jié)點發(fā)送數(shù)據(jù)同步請求;一級備節(jié)點向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到多個備節(jié)點數(shù) 據(jù)同步完畢包括一級備節(jié)點根據(jù)數(shù)據(jù)同步請求更新數(shù)據(jù),并向其管轄的二級備節(jié)點發(fā) 送數(shù)據(jù)同步請求;二級備節(jié)點根據(jù)接收到的數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向其歸屬管 轄的一級備節(jié)點返回數(shù)據(jù)同步成功響應;一級備節(jié)點根據(jù)接收到的數(shù)據(jù)同步成功響應判 斷其管轄的數(shù)據(jù)同步成功的二級備節(jié)點的數(shù)量是否大于或等于配置的數(shù)量閾值且自身數(shù) 據(jù)更新是否成功;若是,則向主節(jié)點返回數(shù)據(jù)同步成功響應;主節(jié)點根據(jù)接收到的數(shù)據(jù) 同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量是否大于或等于配置的數(shù)量閾值且 自身數(shù)據(jù)更新是否成功;若是,則向客戶端返回數(shù)據(jù)修改成功響應。優(yōu)選地,在主節(jié)點配置的數(shù)量閾值的范圍在1和一級備節(jié)點的總數(shù)量之間;分 別配置時,在每個一級備節(jié)點配置的數(shù)量閾值的范圍在1和其管轄的二級備節(jié)點的數(shù)量 之間;統(tǒng)一配置時,在一級備節(jié)點配置的數(shù)量閾值的范圍在1和所有一級備節(jié)點管轄的 二級備節(jié)點的數(shù)量的最小值之間。根據(jù)本發(fā)明的另一個方面,還提供了一種分布式系統(tǒng),包括主節(jié)點,用于向 其下一級的一級備節(jié)點進行數(shù)據(jù)同步,其中設(shè)置主節(jié)點為根節(jié)點,并將所有備節(jié)點分級 為從屬于根節(jié)點的至少兩級;一級備節(jié)點,用于繼續(xù)向其管轄的下一級的二級備節(jié)點進 行數(shù)據(jù)同步,直到所有備節(jié)點數(shù)據(jù)同步完畢;二級備節(jié)點。優(yōu)選地,當將所有備節(jié)點分級為從屬于主節(jié)點的兩級,且在主節(jié)點配置數(shù)據(jù)修 改有效所需的成功應答的備節(jié)點的數(shù)量閾值時,主節(jié)點還用于根據(jù)接收到的客戶端的數(shù) 據(jù)修改請求更新數(shù)據(jù),向一級備節(jié)點發(fā)送數(shù)據(jù)同步請求,并根據(jù)接收到的數(shù)據(jù)同步成功 響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量大于或等于數(shù)量閾值且自身數(shù)據(jù)更新成功, 則向客戶端返回數(shù)據(jù)修改成功響應;一級備節(jié)點還用于根據(jù)數(shù)據(jù)同步請求更新數(shù)據(jù),成 功后向主節(jié)點返回數(shù)據(jù)同步成功響應。優(yōu)選地,當將所有備節(jié)點分級為從屬于主節(jié)點的兩級,且分別在主節(jié)點和一級 備節(jié)點配置數(shù)據(jù)修改有效所需的成功應答的備節(jié)點的數(shù)量閾值時,主節(jié)點還用于根據(jù)接 收到的客戶端的數(shù)據(jù)修改請求更新數(shù)據(jù),向一級備節(jié)點發(fā)送數(shù)據(jù)同步請求,并根據(jù)接收 到的數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量大于或等于配置的數(shù)量閾 值且自身數(shù)據(jù)更新成功,則向客戶端返回數(shù)據(jù)修改成功響應;一級備節(jié)點還用于根據(jù)數(shù) 據(jù)同步請求更新數(shù)據(jù),向其管轄的二級備節(jié)點發(fā)送數(shù)據(jù)同步請求,并根據(jù)接收到的數(shù)據(jù) 同步成功響應判斷其管轄的數(shù)據(jù)同步成功的二級備節(jié)點的數(shù)量大于或等于配置的數(shù)量閾 值且自身數(shù)據(jù)更新成功,則向主節(jié)點返回數(shù)據(jù)同步成功響應;二級備節(jié)點還用于根據(jù)接 收到的數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向其歸屬管轄的一級備節(jié)點返回數(shù)據(jù)同步成功響 應。
優(yōu)選地,在主節(jié)點配置的數(shù)量閾值的范圍在1和一級備節(jié)點的總數(shù)量之間;分 別配置時,在每個一級備節(jié)點配置的數(shù)量閾值的范圍在1和其管轄的二級備節(jié)點的數(shù)量 之間;統(tǒng)一配置時,在一級備節(jié)點配置的數(shù)量閾值的范圍在1和所有一級備節(jié)點管轄的 二級備節(jié)點的數(shù)量的最小值之間。因為通過將數(shù)據(jù)節(jié)點以級聯(lián)的形式進行連接,當進行數(shù)據(jù)同步時上一級節(jié)點只 需向其管轄的下一級節(jié)點進行數(shù)據(jù)同步即可,解決了現(xiàn)有技術(shù)存在的主節(jié)點性能、網(wǎng)絡(luò) 帶寬容易出現(xiàn)瓶頸的問題,從而提供了有效的數(shù)據(jù)同步方式,減輕了主節(jié)點的負擔,緩 解了網(wǎng)絡(luò)帶寬的需求。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本 發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖 中圖1示出了現(xiàn)有技術(shù)的分布式環(huán)境主備同步方式下,數(shù)據(jù)同步處理示意圖;圖2示出了根據(jù)本發(fā)明實施例的用于分布式系統(tǒng)的數(shù)據(jù)同步方法的流程圖;圖3示出了根據(jù)本發(fā)明優(yōu)選實施例的分布式系統(tǒng)的示意圖。
具體實施例方式下面將參考附圖并結(jié)合實施例,來詳細說明本發(fā)明。圖2示出了根據(jù)本發(fā)明實施例的用于分布式系統(tǒng)的數(shù)據(jù)同步方法的流程圖,包 括以下步驟步驟S10,設(shè)置主節(jié)點為根節(jié)點,并將所有備節(jié)點分級為從屬于根節(jié)點的至少兩 級;步驟S20,主節(jié)點向其下一級的一級備節(jié)點進行數(shù)據(jù)同步;步驟S30,一級備節(jié)點繼續(xù)向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到 所有備節(jié)點數(shù)據(jù)同步完畢。該實施例通過將數(shù)據(jù)節(jié)點以級聯(lián)的形式進行連接,當進行數(shù)據(jù)同步時上一級節(jié) 點只需向其管轄的下一級節(jié)點進行數(shù)據(jù)同步即可,解決了現(xiàn)有技術(shù)存在的主節(jié)點性能、 網(wǎng)絡(luò)帶寬容易出現(xiàn)瓶頸的問題。使用該實施例提供了有效的數(shù)據(jù)同步方式,減輕了主節(jié) 點的負擔,緩解了網(wǎng)絡(luò)帶寬的需求。優(yōu)選地,所有備節(jié)點分級的級數(shù)不大于三級,且一個備節(jié)點歸屬于一個其上一 級的備節(jié)點管轄;當主節(jié)點和所有備節(jié)點分布在多個地區(qū)時,每個地區(qū)至少包括一個一 級備節(jié)點;每個備節(jié)點管轄的下一級的備節(jié)點為多個。該優(yōu)選實施例提供了對備節(jié)點進行分級的原則。優(yōu)選地,在主節(jié)點向其下一級 的一級備節(jié)點進行數(shù)據(jù)同步之前還包括配置數(shù) 據(jù)修改有效所需的成功應答的備節(jié)點的數(shù)量閾值。優(yōu)選地,當將所有備節(jié)點分級為從屬于主節(jié)點的兩級,且在主節(jié)點配置數(shù)量閾 值時,步驟S20包括主節(jié)點根據(jù)接收到的客戶端的數(shù)據(jù)修改請求更新數(shù)據(jù),并向一級 備節(jié)點發(fā)送數(shù)據(jù)同步請求;步驟S30包括一級備節(jié)點根據(jù)數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向主節(jié)點返回數(shù)據(jù)同步成功響應;主節(jié)點根據(jù)接收到的數(shù)據(jù)同步成功響應判斷數(shù) 據(jù)同步成功的一級備節(jié)點的數(shù)量是否大于或等于數(shù)量閾值且自身數(shù)據(jù)更新是否成功;若 是,則向客戶端返回數(shù)據(jù)修改成功響應。該優(yōu)選實施例提供了采用同步/異步結(jié)合的方式時的一種具體實施方案。 優(yōu)選地,當將所有備節(jié)點分級為從屬于主節(jié)點的兩級,且分別在主節(jié)點和一級 備節(jié)點配置數(shù)量閾值時,步驟S20包括主節(jié)點根據(jù)接收到的客戶端的數(shù)據(jù)修改請求更 新數(shù)據(jù),并向一級備節(jié)點發(fā)送數(shù)據(jù)同步請求;步驟S30包括一級備節(jié)點根據(jù)數(shù)據(jù)同步 請求更新數(shù)據(jù),并向其管轄的二級備節(jié)點發(fā)送數(shù)據(jù)同步請求;二級備節(jié)點根據(jù)接收到的 數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向其歸屬管轄的一級備節(jié)點返回數(shù)據(jù)同步成功響應;一 級備節(jié)點根據(jù)接收到的數(shù)據(jù)同步成功響應判斷其管轄的數(shù)據(jù)同步成功的二級備節(jié)點的數(shù) 量是否大于或等于配置的數(shù)量閾值且自身數(shù)據(jù)更新是否成功;若是,則向主節(jié)點返回數(shù) 據(jù)同步成功響應;主節(jié)點根據(jù)接收到的數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié) 點的數(shù)量是否大于或等于配置的數(shù)量閾值且自身數(shù)據(jù)更新是否成功;若是,則向客戶端 返回數(shù)據(jù)修改成功響應。該優(yōu)選實施例提供了采用同步/異步結(jié)合的方式時的另一種具體實施方案。該 優(yōu)選實施例僅提供了當備節(jié)點分級為兩級時采用同步/異步結(jié)合的數(shù)據(jù)同步方式的具體 實施方案。同理可知,當備節(jié)點分級為三級或三級以上時,可以在主節(jié)點、一級備節(jié)點 和二級備節(jié)點等上分別配置上述數(shù)量閾值,當備節(jié)點判斷其管轄的數(shù)據(jù)同步成功的下一 級的備節(jié)點的數(shù)量大于或等于配置的數(shù)量閾值且自身也已數(shù)據(jù)同步成功時才向其上一級 的備節(jié)點返回數(shù)據(jù)同步成功響應,直到主節(jié)點也判斷其管轄的數(shù)據(jù)同步成功的一級備節(jié) 點的數(shù)量大于或等于配置的數(shù)量閾值且自身也已數(shù)據(jù)同步成功時向客戶端返回數(shù)據(jù)修改 成功響應。其中,在上述的兩個采用同步/異步結(jié)合的方式的優(yōu)選實施例中,在主節(jié)點配 置的數(shù)量閾值的范圍在1和一級備節(jié)點的總數(shù)量之間;分別配置時,在每個一級備節(jié)點 配置的數(shù)量閾值的范圍在1和其管轄的二級備節(jié)點的數(shù)量之間;統(tǒng)一配置時,在一級備 節(jié)點配置的數(shù)量閾值的范圍在1和所有一級備節(jié)點管轄的二級備節(jié)點的數(shù)量的最小值之 間。例如,有3個一級備節(jié)點備節(jié)點#1、備節(jié)點#2和備節(jié)點#3,其管轄的二級備節(jié)點 的數(shù)量分別為10、6和8,則分別配置時,在備節(jié)點#1配置的數(shù)量閾值為10、在備節(jié)點 #2配置的數(shù)量閾值為6、在備節(jié)點#3配置的數(shù)量閾值為8;統(tǒng)一配置時,在備節(jié)點#1、 備節(jié)點#2和備節(jié)點#3配置的數(shù)量閾值為min{10,6,8} = 6。通過配置不同的數(shù)量閾值來控制采用不同的數(shù)據(jù)同步方式,該優(yōu)選實施例提供 了采用同步/異步結(jié)合的方式時的數(shù)量閾值的取值范圍。同理可知,當備節(jié)點分級為 三級或三級以上時,在主節(jié)點配置的數(shù)量閾值的范圍在1和所有一級備節(jié)點的總數(shù)量之 間;分別配置時,每個備節(jié)點配置的數(shù)量閾值的范圍在1和其管轄的下一級的備節(jié)點的 數(shù)量之間;統(tǒng)一配置時,在每一級的備節(jié)點配置的數(shù)量閾值的范圍在1和該級中所有備 節(jié)點管轄的下一級的備節(jié)點的數(shù)量的最小值。其中,值得注意的是,最底層的備節(jié)點 (即葉子節(jié)點)無需配置數(shù)量閾值。此外,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)還存在以下問題在主備同步方式下對數(shù)據(jù)請求的 常規(guī)處理為主節(jié)點收到客戶端的修改請求,只有向所有備節(jié)點同步完成后,才會向客戶端返回修改成功應答??紤]到多個備節(jié)點的跨地區(qū)、遠距離分布因素,所有備節(jié)點數(shù) 據(jù)同步的持續(xù)時間會比較長,進而導致給客戶端數(shù)據(jù)響應的時延過長。采用上述的優(yōu)選實施例通過配置數(shù)據(jù)修改有效所需的成功應答的備節(jié)點的數(shù)量 閾值來控制采用同步/異步結(jié)合的數(shù)據(jù)同步方式,主節(jié)點判斷一定數(shù)量的備節(jié)點完成了 數(shù)據(jù)修改,即認為數(shù)據(jù)修改有效,其余備節(jié)點的數(shù)據(jù)修改可以后續(xù)完成,解決了現(xiàn)有技 術(shù)存在的數(shù)據(jù)響應的時延過長的問題。采用上述的優(yōu)選實施例能夠有效地縮短數(shù)據(jù)響應 時間,保證了數(shù)據(jù)同步的效率。本發(fā)明的分布式環(huán)境下的數(shù)據(jù)同步方法包括以下方面1、主節(jié)點性能、網(wǎng)絡(luò)帶寬問題的解決對該問題的解決采用級聯(lián)同步方式,具體說明如下(1)對多個備節(jié)點進行分級,比如分為一級備節(jié)點、二級備節(jié)點;(2)備節(jié)點分級的原則A、為了避免級聯(lián)層次的過多,原則上節(jié)點的分級不宜超過三層。B、對于多個地區(qū)的情況,原則上每個地區(qū)至少分配一個一級備節(jié)點。C、每個上級備節(jié)點可以管轄數(shù)個下級備節(jié)點,原則上盡量保證每個上級備節(jié)點 管轄的下級備節(jié)點數(shù)量相等。D、每個下級備節(jié)點只能歸屬一個上級備節(jié)點,不能歸屬于同級或者下級備節(jié)
點ο(3)主節(jié)點僅負責向一級備節(jié)點進行數(shù)據(jù)同步;(4) 一級備節(jié)點負責向其管轄的二級備節(jié)點進行數(shù)據(jù)同步,其余級別節(jié)點依次類 推。2、數(shù)據(jù)響應時延問題的解決對該問題的解決采用同步/異步結(jié)合的方式,具體說明如下(1)數(shù)據(jù)同步方式A、純同步即只有主節(jié)點和所有備節(jié)點同時完成了數(shù)據(jù)修改,數(shù)據(jù)修改才有 效,否則,主節(jié)點已經(jīng)完成的數(shù)據(jù)修改需要回滾。B、純異步即只要主節(jié)點完成了數(shù)據(jù)修改,數(shù)據(jù)修改即有效,備節(jié)點的數(shù)據(jù) 修改可以后續(xù)完成。C、同步/異步結(jié)合主節(jié)點判斷一定數(shù)量的備節(jié)點完成了數(shù)據(jù)修改,即認為數(shù) 據(jù)修改有效,其余備節(jié)點的數(shù)據(jù)修改可以后續(xù)完成。同步/異步結(jié)合的方式既不是完全等待,也不是 完全不等待,是數(shù)據(jù)安全、同 步效率的折中,適合于多個備節(jié)點跨地區(qū)分布的場景。(2)系統(tǒng)對數(shù)據(jù)修改有效所需的成功應答的備節(jié)點數(shù)量進行配置,可以控制采用 純同步(所需成功應答的備節(jié)點數(shù)量等于備節(jié)點的數(shù)量)、純異步(所需成功應答的備節(jié) 點數(shù)量等于0)、同步和異步結(jié)合的方式(所需成功應答的備節(jié)點數(shù)量介于1和備節(jié)點總數(shù) 之間)。(3)主節(jié)點收到備節(jié)點的數(shù)據(jù)同步響應,根據(jù)配置的數(shù)量進行判斷,如果滿足配 置條件,則向客戶端返回數(shù)據(jù)響應。上述優(yōu)選實施例能夠有效地解決分布式環(huán)境下主備同步方式所面臨的主節(jié)點性能、網(wǎng)絡(luò)帶寬和數(shù)據(jù)響應時延問題,從而提供了有效的數(shù)據(jù)同步方式,減輕了主節(jié)點的 負擔,緩解了網(wǎng)絡(luò)帶寬的需求,并極大地縮短了數(shù)據(jù)響應的時延,改善了用戶體驗。圖3示出了根據(jù)本發(fā)明優(yōu)選實施例的分布式系統(tǒng)的示意圖,包括主節(jié)點(如 主節(jié)點#1),用于向其下一級的一級備節(jié)點進行數(shù)據(jù)同步,其中設(shè)置主節(jié)點為根節(jié)點,并 將所有備節(jié)點分級為從屬于根節(jié)點的至少兩級;一級備節(jié)點(如備節(jié)點#2、備節(jié)點#3、 備節(jié)點#4、備節(jié)點#7),用于繼續(xù)向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到 所有備節(jié)點數(shù)據(jù)同步完畢;二級備節(jié)點(如備節(jié)點#5、備節(jié)點#6、備節(jié)點#8、備節(jié)點 #9)。該實施例通過將數(shù)據(jù)節(jié)點以級聯(lián)的形式進行連接,當進行數(shù)據(jù)同步時上一級節(jié) 點只需向其管轄的下一級節(jié)點進行數(shù)據(jù)同步即可,解決了現(xiàn)有技術(shù)存在的主節(jié)點性能、 網(wǎng)絡(luò)帶寬容易出現(xiàn)瓶頸的問題。使用該實施例提供了有效的數(shù)據(jù)同步方式,減輕了主節(jié)點的負擔,緩解了網(wǎng)絡(luò)帶寬的需求。優(yōu)選地,如圖3所示,當將所有備節(jié)點分級為從屬于主節(jié)點的兩級,且在主節(jié) 點配置數(shù)據(jù)修改有效所需的成功應答的備節(jié)點的數(shù)量閾值時,主節(jié)點還用于根據(jù)接收到 的客戶端的數(shù)據(jù)修改請求更新數(shù)據(jù),向一級備節(jié)點發(fā)送數(shù)據(jù)同步請求,并根據(jù)接收到的 數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量大于或等于數(shù)量閾值且自身數(shù) 據(jù)更新成功,則向客戶端返回數(shù)據(jù)修改成功響應;一級備節(jié)點還用于根據(jù)數(shù)據(jù)同步請求 更新數(shù)據(jù),成功后向主節(jié)點返回數(shù)據(jù)同步成功響應。該優(yōu)選實施例提供了采用同步/異步結(jié)合的方式時的一種具體實施方案。優(yōu)選地,如圖3所示,當將所有備節(jié)點分級為從屬于主節(jié)點的兩級,且分別在 主節(jié)點和一級備節(jié)點配置數(shù)據(jù)修改有效所需的成功應答的備節(jié)點的數(shù)量閾值時,主節(jié)點 還用于根據(jù)接收到的客戶端的數(shù)據(jù)修改請求更新數(shù)據(jù),向一級備節(jié)點發(fā)送數(shù)據(jù)同步請 求,并根據(jù)接收到的數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量大于或等 于配置的數(shù)量閾值且自身數(shù)據(jù)更新成功,則向客戶端返回數(shù)據(jù)修改成功響應;一級備節(jié) 點還用于根據(jù)數(shù)據(jù)同步請求更新數(shù)據(jù),向其管轄的二級備節(jié)點發(fā)送數(shù)據(jù)同步請求,并根 據(jù)接收到的數(shù)據(jù)同步成功響應判斷其管轄的數(shù)據(jù)同步成功的二級備節(jié)點的數(shù)量大于或等 于配置的數(shù)量閾值且自身數(shù)據(jù)更新成功,則向主節(jié)點返回數(shù)據(jù)同步成功響應;二級備節(jié) 點還用于根據(jù)接收到的數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向其歸屬管轄的一級備節(jié)點返回 數(shù)據(jù)同步成功響應。該優(yōu)選實施例提供了采用同步/異步結(jié)合的方式時的另一種具體實施方案。其中,在上述的兩個采用同步/異步結(jié)合的方式的優(yōu)選實施例中,在主節(jié)點配 置的數(shù)量閾值的范圍在1和一級備節(jié)點的總數(shù)量之間;分別配置時,在每個一級備節(jié)點 配置的數(shù)量閾值的范圍在1和其管轄的二級備節(jié)點的數(shù)量之間;統(tǒng)一配置時,在一級備 節(jié)點配置的數(shù)量閾值的范圍在1和所有一級備節(jié)點管轄的二級備節(jié)點的數(shù)量的最小值之 間。通過配置不同的數(shù)量閾值來控制采用不同的數(shù)據(jù)同步方式,該優(yōu)選實施例提供 了采用同步/異步結(jié)合的方式時的數(shù)量閾值的取值范圍。同理可知,當備節(jié)點分級為 三級或三級以上時,在主節(jié)點配置的數(shù)量閾值的范圍在1和所有一級備節(jié)點的總數(shù)量之 間;分別配置時,每個備節(jié)點配置的數(shù)量閾值的范圍在1和其管轄的下一級的備節(jié)點的數(shù)量之間;統(tǒng)一配置時,在每一級的備節(jié)點配置的數(shù)量閾值的范圍在1和該級中所有備 節(jié)點管轄的下一級的備節(jié)點的數(shù)量的最小值。其中,值得注意的是,最底層的備節(jié)點 (即葉子節(jié)點)無需配置數(shù)量閾值。下面結(jié)合圖1和圖3詳細地說明本發(fā)明的分布式環(huán)境下數(shù)據(jù)同步方法的處理流程。
如圖1和圖3所示,該分布式網(wǎng)絡(luò)包括1:地區(qū)-1; 2 地區(qū)-2; 3 地 區(qū)-3 ; 4 主節(jié)點#1 ; 5 備節(jié)點#2 ; 6 備節(jié)點#3 ; 7 備節(jié)點#4 ; 8 備節(jié)點#5 ; 9 備節(jié)點#6 ; 10 備節(jié)點#7 ; 11 備節(jié)點#8 ; 12 備節(jié)點#9 ; 13 客戶端;其中,地區(qū)1-3,為分布式環(huán)境多數(shù)據(jù)節(jié)點分布的場所,此處三個僅為示意,實 際不限于上述數(shù)量的限制;主節(jié)點#1,為分布式環(huán)境多數(shù)據(jù)節(jié)點的主節(jié)點,負責接受客戶端的讀/寫請 求,并把本節(jié)點的數(shù)據(jù)變化依靠某種途徑最終同步到各個備節(jié)點,主節(jié)點個數(shù)只能為一 個;備節(jié)點(#2-#9),為分布式環(huán)境多數(shù)據(jù)節(jié)點的備節(jié)點,負責接受客戶端的讀請 求,并依靠某種途徑實現(xiàn)與主節(jié)點的數(shù)據(jù)同步,此處八個僅為示意,實際不限于上述數(shù) 量的限制;結(jié)合圖1,對分布式環(huán)境主備同步方式下,現(xiàn)有技術(shù)的數(shù)據(jù)同步處理進行說 明(1)數(shù)據(jù)節(jié)點包括主節(jié)點#1和備節(jié)點#2_#9,所有備節(jié)點等同處理。(2)主節(jié)點#1負責把數(shù)據(jù)同步到所有備節(jié)點(#2_#9)。(3)主節(jié)點#1收到所有備節(jié)點(#2_#9)的數(shù)據(jù)同步成功響應后,向客戶端返回數(shù) 據(jù)修改響應。結(jié)合圖3,對分布式環(huán)境主備同步方式下,根據(jù)本發(fā)明優(yōu)選實施例的級聯(lián)同步處 理進行說明(1)備節(jié)點分為兩級一級備節(jié)點(#2、#3、#4、#7) ; 二級備節(jié)點(#5、#6、 #8、#9)。(2)主節(jié)點1負責把數(shù)據(jù)同步到所有一級備節(jié)點(#2、#3、#4、#7)。(3)每個一級備節(jié)點負責把數(shù)據(jù)同步到各自管轄的二級備節(jié)點,其中備節(jié)點#4 負責向備節(jié)點#5、備節(jié)點#6同步,備節(jié)點#7負責向備節(jié)點#8、備節(jié)點#9同步。(4)主節(jié)點#1收到所有一級備節(jié)點(#2、#3、#4、#7)的數(shù)據(jù)同步成功響應后, 向客戶端返回數(shù)據(jù)修改響應。對圖1所示的現(xiàn)有技術(shù)的數(shù)據(jù)同步處理和圖3所示的根據(jù)本發(fā)明優(yōu)選實施例的級 聯(lián)同步處理進行比較假定主節(jié)點向單個備節(jié)點數(shù)據(jù)同步的消息次數(shù)發(fā)送為1000次/秒,網(wǎng)絡(luò)流量為 2MB/ 秒?,F(xiàn)有技術(shù)的數(shù)據(jù)同步方式下主節(jié)點的消息發(fā)送次數(shù)為8*1000次/秒=8000次/秒;地區(qū)之間的網(wǎng)絡(luò)流量為3*2MB/秒=6MB/秒。根據(jù)本發(fā)明優(yōu)選實施例的級聯(lián)方式下
主節(jié)點的消息發(fā)送次數(shù)為4*1000次/秒=4000次/秒;地區(qū)之間的網(wǎng)絡(luò)流量為1*2MB/秒=2MB/秒。由上述數(shù)據(jù)可見,分布式環(huán)境主備同步方式下,根據(jù)本發(fā)明優(yōu)選實施例的級聯(lián) 同步處理相對于現(xiàn)有技術(shù)的同步處理,可以有效地降低主節(jié)點的性能負荷瓶頸,以及地 區(qū)之間的網(wǎng)絡(luò)流量。并且隨著節(jié)點、地區(qū)個數(shù)的遞增,這一優(yōu)勢將會得到更為明顯的體 現(xiàn)。結(jié)合圖3,對分布式環(huán)境主備同步方式下,根據(jù)本發(fā)明優(yōu)選實施例的同步/異步 結(jié)合的處理進行說明(1)假定系統(tǒng)配置的數(shù)據(jù)修改有效所需的成功應答的備節(jié)點數(shù)量閾值為兩個。(3)主節(jié)點#1收到客戶端的數(shù)據(jù)修改請求后,發(fā)送數(shù)據(jù)同步請求到所有一級備 節(jié)點(#2、#3、#4、#7)。(4)主節(jié)點#1收到任意兩個一級備節(jié)點的數(shù)據(jù)同步成功響應后(此處假定為備 節(jié)點#2、備節(jié)點#4),判斷滿足配置的數(shù)據(jù)同步成功條件,即向客戶端返回數(shù)據(jù)修改響 應。通過上述處理,主節(jié)點不需等待所有備節(jié)點的響應即可向客戶端返回數(shù)據(jù)響 應,有效地降低了響應時間。同時,由于響應的備節(jié)點個數(shù)一般都設(shè)為大于等于一個, 因此在保證效率的同時,數(shù)據(jù)的可靠性也能得到比較有效的保證。在上述優(yōu)選實施例的同步/異步結(jié)合的處理中,還可分別在主節(jié)點和一級備節(jié) 點上配置數(shù)據(jù)修改有效所需的成功應答的備節(jié)點數(shù)量閾值(如主節(jié)點和一級備節(jié)點上的 數(shù)量閾值分別為m和η),一級備節(jié)點判斷收到η個其管轄的二級備節(jié)點的數(shù)據(jù)同步成功 響應且其自身數(shù)據(jù)同步成功后,向主節(jié)點返回數(shù)據(jù)同步成功響應,主節(jié)點同樣判斷收到 m個一級備節(jié)點的數(shù)據(jù)同步成功響應且其自身數(shù)據(jù)同步成功后,即向客戶端返回數(shù)據(jù)修 改響應。從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術(shù)效果因為通過將數(shù)據(jù)節(jié) 點以級聯(lián)的形式進行連接,當進行數(shù)據(jù)同步時上一級節(jié)點只需向其管轄的下一級節(jié)點進 行數(shù)據(jù)同步即可,解決了現(xiàn)有技術(shù)存在的主節(jié)點性能、網(wǎng)絡(luò)帶寬容易出現(xiàn)瓶頸的問題, 從而提供了有效的數(shù)據(jù)同步方式,減輕了主節(jié)點的負擔,緩解了網(wǎng)絡(luò)帶寬的需求,改善 了用戶體驗。此外,通過采用同步/異步結(jié)合的數(shù)據(jù)同步方式,解決了現(xiàn)有技術(shù)存在的 數(shù)據(jù)響應的時延過長的問題,極大地縮短了數(shù)據(jù)響應的時延。顯然,本領(lǐng)域的技術(shù)人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通 用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所 組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將 它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊, 或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制 于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的 技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的 任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種分布式系統(tǒng)的數(shù)據(jù)同步方法,其特征在于,包括設(shè)置主節(jié)點為根節(jié)點,并將所有備節(jié)點分級為從屬于所述根節(jié)點的至少兩級;所述主節(jié)點向其下一級的一級備節(jié)點進行數(shù)據(jù)同步;所述一級備節(jié)點繼續(xù)向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到所述所有 備節(jié)點數(shù)據(jù)同步完畢。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,所述所有備節(jié)點分級的級數(shù)不 大于三級,且一個備節(jié)點歸屬于一個其上一級的備節(jié)點管轄。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,當所述主節(jié)點和所述所有備節(jié) 點分布在多個地區(qū)時,每個地區(qū)至少包括一個所述一級備節(jié)點。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,每個備節(jié)點管轄的下一級的備 節(jié)點為多個。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,在所述主節(jié)點向其下一級的一 級備節(jié)點進行數(shù)據(jù)同步之前還包括配置數(shù)據(jù)修改有效所需的成功應答的備節(jié)點的數(shù)量閾值。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)同步方法,其特征在于,當將所述所有備節(jié)點分級為從 屬于所述主節(jié)點的兩級,且在所述主節(jié)點配置所述數(shù)量閾值時,所述主節(jié)點向其下一級的一級備節(jié)點進行數(shù)據(jù)同步包括所述主節(jié)點根據(jù)接收到的客戶端的數(shù)據(jù)修改請求更新數(shù)據(jù),并向所述一級備節(jié)點發(fā) 送數(shù)據(jù)同步請求;所述一級備節(jié)點向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到所述多個備節(jié) 點數(shù)據(jù)同步完畢包括所述一級備節(jié)點根據(jù)所述數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向所述主節(jié)點返回數(shù)據(jù)同 步成功響應;所述主節(jié)點根據(jù)接收到的數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量 是否大于或等于所述數(shù)量閾值且自身數(shù)據(jù)更新是否成功;若是,則向所述客戶端返回數(shù)據(jù)修改成功響應。
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)同步方法,其特征在于,當將所述所有備節(jié)點分級為從 屬于所述主節(jié)點的兩級,且分別在所述主節(jié)點和所述一級備節(jié)點配置所述數(shù)量閾值時,所述主節(jié)點向其下一級的一級備節(jié)點進行數(shù)據(jù)同步包括所述主節(jié)點根據(jù)接收到的客戶端的數(shù)據(jù)修改請求更新數(shù)據(jù),并向所述一級備節(jié)點發(fā) 送數(shù)據(jù)同步請求;所述一級備節(jié)點向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到所述多個備節(jié) 點數(shù)據(jù)同步完畢包括所述一級備節(jié)點根據(jù)所述數(shù)據(jù)同步請求更新數(shù)據(jù),并向其管轄的所述二級備節(jié)點發(fā) 送數(shù)據(jù)同步請求;所述二級備節(jié)點根據(jù)接收到的數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向其歸屬管轄的所述 一級備節(jié)點返回數(shù)據(jù)同步成功響應;所述一級備節(jié)點根據(jù)接收到的數(shù)據(jù)同步成功響應判斷其管轄的數(shù)據(jù)同步成功的二級 備節(jié)點的數(shù)量是否大于或等于配置的所述數(shù)量閾值且自身數(shù)據(jù)更新是否成功;若是,則向所述主節(jié)點返回數(shù)據(jù)同步成功響應;所述主節(jié)點根據(jù)接收到的數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量 是否大于或等于配置的所述數(shù)量閾值且自身數(shù)據(jù)更新是否成功; 若是,則向所述客戶端返回數(shù)據(jù)修改成功響應。
8.根據(jù)權(quán)利要求6或7所述的數(shù)據(jù)同步方法,其特征在于,在所述主節(jié)點配置的所述 數(shù)量閾值的范圍在1和所述一級備節(jié)點的總數(shù)量之間;分別配置時,在每個所述一級備節(jié)點配置的所述數(shù)量閾值的范圍在1和其管轄的所 述二級備節(jié)點的數(shù)量之間;統(tǒng)一配置時,在所述一級備節(jié)點配置的所述數(shù)量閾值的范圍在1和所有所述一級備 節(jié)點管轄的所述二級備節(jié)點的數(shù)量的最小值之間。
9.一種分布式系統(tǒng),其特征在于,包括主節(jié)點,用于向其下一級的一級備節(jié)點進行數(shù)據(jù)同步,其中設(shè)置所述主節(jié)點為根節(jié) 點,并將所有備節(jié)點分級為從屬于所述根節(jié)點的至少兩級;所述一級備節(jié)點,用于繼續(xù)向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到所 述所有備節(jié)點數(shù)據(jù)同步完畢; 所述二級備節(jié)點。
10.根據(jù)權(quán)利要求9所述的分布式系統(tǒng),其特征在于,當將所述所有備節(jié)點分級為從 屬于所述主節(jié)點的兩級,且在所述主節(jié)點配置數(shù)據(jù)修改有效所需的成功應答的備節(jié)點的 數(shù)量閾值時,所述主節(jié)點還用于根據(jù)接收到的客戶端的數(shù)據(jù)修改請求向所述一級備節(jié)點發(fā)送數(shù)據(jù) 同步請求,并根據(jù)接收到的數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量大 于或等于所述數(shù)量閾值,則向所述客戶端返回數(shù)據(jù)修改成功響應;所述一級備節(jié)點還用于根據(jù)所述數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向所述主節(jié)點返回 數(shù)據(jù)同步成功響應。
11.根據(jù)權(quán)利要求9所述的分布式系統(tǒng),其特征在于,當將所述所有備節(jié)點分級為從 屬于所述主節(jié)點的兩級,且分別在所述主節(jié)點和所述一級備節(jié)點配置數(shù)據(jù)修改有效所需 的成功應答的備節(jié)點的數(shù)量閾值時,所述主節(jié)點還用于根據(jù)接收到的客戶端的數(shù)據(jù)修改請求向所述一級備節(jié)點發(fā)送數(shù)據(jù) 同步請求,并根據(jù)接收到的數(shù)據(jù)同步成功響應判斷數(shù)據(jù)同步成功的一級備節(jié)點的數(shù)量大 于或等于配置的所述數(shù)量閾值,則向所述客戶端返回數(shù)據(jù)修改成功響應;所述一級備節(jié)點還用于根據(jù)所述數(shù)據(jù)同步請求更新數(shù)據(jù),向其管轄的所述二級備節(jié) 點發(fā)送數(shù)據(jù)同步請求,并根據(jù)接收到的數(shù)據(jù)同步成功響應判斷其管轄的數(shù)據(jù)同步成功的 二級備節(jié)點的數(shù)量大于或等于配置的所述數(shù)量閾值且自身數(shù)據(jù)更新成功,則向所述主節(jié) 點返回數(shù)據(jù)同步成功響應;所述二級備節(jié)點還用于根據(jù)接收到的數(shù)據(jù)同步請求更新數(shù)據(jù),成功后向其歸屬管轄 的所述一級備節(jié)點返回數(shù)據(jù)同步成功響應。
12.根據(jù)權(quán)利要求10或11所述的分布式系統(tǒng),其特征在于,在所述主節(jié)點配置的所 述數(shù)量閾值的范圍在1和所述一級備節(jié)點的總數(shù)量之間;分別配置時,在每個所述一級備節(jié)點配置的所述數(shù)量閾值的范圍在1和其管轄的所述二級備節(jié)點的數(shù)量之間; 統(tǒng)一配置時,在所述一級備節(jié)點配置的所述數(shù)量閾值的范圍在1和所有所述一級備 節(jié)點管轄的所述二級備節(jié)點的數(shù)量的最小值之間。
全文摘要
本發(fā)明提供了一種分布式系統(tǒng)的數(shù)據(jù)同步方法,包括設(shè)置主節(jié)點為根節(jié)點,并將所有備節(jié)點分級為從屬于根節(jié)點的至少兩級;主節(jié)點向其下一級的一級備節(jié)點進行數(shù)據(jù)同步;一級備節(jié)點繼續(xù)向其管轄的下一級的二級備節(jié)點進行數(shù)據(jù)同步,直到所有備節(jié)點數(shù)據(jù)同步完畢。本發(fā)明還提供了一種分布式系統(tǒng)。本發(fā)明解決了現(xiàn)有技術(shù)存在的主節(jié)點性能、網(wǎng)絡(luò)帶寬容易出現(xiàn)瓶頸,數(shù)據(jù)響應的時延過長的問題,從而提供了有效的數(shù)據(jù)同步方式,減輕了主節(jié)點的負擔,緩解了網(wǎng)絡(luò)帶寬的需求,并極大地縮短了數(shù)據(jù)響應的時延,改善了用戶體驗。
文檔編號H04L29/08GK102025756SQ200910173710
公開日2011年4月20日 申請日期2009年9月9日 優(yōu)先權(quán)日2009年9月9日
發(fā)明者張曉輝, 章恩華, 賀旻捷 申請人:中興通訊股份有限公司